python基础练习题4
题目:
现有一个数据库记录文件(0005.txt)保证了学生课程签到的数据记录
('2017-03-13 11:50:09',271,131),
('2017-03-14 11:52:19',273,131),
('2017-03-13 11:50:09',271,126), 每一行记录保存了学生的一次签到信息
每一次签到信息的记录,分成三个部分,分别是签到的时间,签到的课程id,签到学生的ID
要求大家实现下面的函数,其中参数fileName为数据记录文件路径,输出结果是将数据库记录文件中,的学生签到信息保存到一个字典中,并作为返回值返回
def PUtInfo(fileName):
要求返回的字典对象的格式是这样的:
key是各个学生的id,value是该学生的签到信息
其中value,里面保存着该学生所有的签到信息
其中每个签到的信息是字典对象,有两个元素;key是lessiod的课程id,key是checkintime的记录签到时间,
如对上面的示例中的3条记录,响应的返回结果如下:
{
131:[
{'lessonid':271,'checkintime':'2017-03-17 11:50:09'}
{'lessonid':273,'checkintime':'2017-03-14 10:52:09'}
],
126:[
{'lessonid':271,'checkintime':'2017-03-13 11:50:19'}
]
}
需求:
1-要求是函数 def putInfoDic(fileName):
形参
返回值
2-返回是字典--格式
{
学生id:[
{'',''},
{}
]
} 示例:('2017-03-13 11:50:09',271,131),
思路:
1-获取相应数据:每一个:学生ID 课程ID 签到时间
1-读取文件--txt ’r‘ with open('路径') as fo
2-获取文件内容:
fo.read().splitlines()--返回是list
3-对每一个元素进行遍历--for
for line inlines:
4-提取每一个元素响应的内容
1-先处理掉无关字符
2-在切割--取值
2-按照格式组合 '''
fileDir = r'E:\0005.txt'
def putInfoToDict(fileName):
resDict = {}
#1-打开文件
with open(fileName)as fo:
lines = fo.read().splitlines()
for line in lines:
line=line.replace('(','').replace(')','').replace('\t','').replace(';',',')
temp = line.split(',')
checkTime = temp[0].strip()
lessonid = int(temp[1].strip())
userid = int(temp[2].strip())
infoDict = {'lessonid':lessonid,'checkintime':checkTime}
#统计
if userid not in resDict:#增加--键值对
resDict[userid]=[]
resDict[userid].append(infoDict)#增加信息 # if userid not in resDict:
# resDict[userid]=[infoDict]
# else:
# resDict[userid].append(infoDict) return resDict res = putInfoToDict(fileDir)
print(res)
#完美打印
import pprint
pprint.pprint(res)
02:判断101-200之间有多少个素数,并输出所有的素数
l=[]
for i in range(101,200):
for j in range(2,i-1):
if i%j==0:
break
else:
l.append(i)
print(l)
print('总数为:%d'%len(l))
#第二种解法(百度查询)
from math import sqrt
h=0
for m in range(101,201):
leap=1
k = int(sqrt(m)) #返回数字的平方根
for i in range(2,k+1):#K+1,表示从2循环到K(包含k)
if m % i==0:
leap=0
break
if leap==1:
print('%-4d'%m)
h+=1
if h % 10==0:
print('')
print('The total is %d'%h)
03:打印出所有水仙花,所谓’水仙花数‘就是一个三位数,其余个位数立方和等于该数本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方
利用for循环控制100-999个数,每个数分解出个位,十位,百
python 求一个三位数的个位十位百位的值
定义一个数
a=12323343434
百位数:a//100%10
十位数:a//10%10
个位数:a//1%10
----以此类推--
取倒数第几位,就是a//位数%10
e=0
for a in range(100,1000):
b = a%10 #个位数
c=a//10%10#十位数
d=a//100 #百位数
if b**3+c**3+d**3==a:
e+=1
print(e)
04:将一个正整数分解质因数,例如输入90:打印出90=2*3*3*5
while 1:
n = int(input('请输入一个数:'))
print('%d='%n,end='')
while n>1:
for i in range(2,n+1):
if n%i==0:
n=int(n/i)
if n==1:
print('%d'%i,end='')
else:
print('%d**'%i,end='')
break
print()
python基础练习题4的更多相关文章
- python基础练习题1
深深感知python基础是有多么重要,Ljh说一定要多练题,so,我现在开始要每天打卡练习python.加油! 01:求‘1-100’的偶数和 #第一种解法: sum=0 num=0 while nu ...
- python基础练习题(九九乘法表)
又把python捡起来了,动手能力偏弱,决定每日一练,把基础打好! ------------------------------------------------------------------ ...
- python基础练习题
购物车程序 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/3/6 21:01 # @Author : hyang # @Si ...
- Python基础 练习题
DAY .1 1.使用while循环输出 1 2 3 4 5 6 8 9 10 n = 1 while n < 11: if n == 7: pass else: print(n) n ...
- Python基础练习题100例(Python 3.x)
1:题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 程序源 ...
- python基础练习题30道
1.执行python脚本的两种方式 答:1>可以在python /home/xxxx.py 2>cd /home ./xxxx.py 因为py脚本里面指定了python解释器的位置 ...
- 08: python基础练习题
1.while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和 # 使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和 s = 0 i = ...
- 『Python基础练习题』day02
1.判断下列逻辑语句的True, False 1) 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 2) ...
- Python学习【day03】- Python基础练习题(列表、元组、字典)
#!/usr/bin/env python # -*- coding:utf8 -*- # 1.有两个列表 # l1 = [11,22,33] # l2 = [22,33,44] # a.获取内容相同 ...
- Python学习【day02】- Python基础练习题
#!/usr/bin/env python # -*- coding:utf8 -*- # 执行Python 脚本的两种方式 # 答:①在windows的cmd窗口下 > D:/Python/p ...
随机推荐
- loadrunner设置Analysis分析时去掉思考时间
在进行对loadrunner进行执行脚本的情况下,那么就需要在脚本中进行添加为思考时间,这样才更符合人为的脚本时间,那么在进行执行压力的过程中,思考时间是需要开启的,完成之后为了便于分析那么就需要把思 ...
- 关于eval(data)和eval("("+data+")")
如果data是字符串,使用eval("("+data+")")可以将其转换为json对象,和JSON.parse的功能一样.如果data是json对象,使用ev ...
- 解决kubeadm部署kubernetes集群镜像问题
kubeadm 是kubernetes 的集群安装工具,能够快速安装kubernetes 集群.kubeadm init 命令默认使用的docker镜像仓库为k8s.gcr.io,国内无法直接访问,需 ...
- 模糊查询基于select遍历json文件自动填充的实现
HTML页面 <tr> <td align="left"><span>案由</span> <input type=" ...
- js中的break,continue和return的用法及区别
为什么要说个?好像很简单,但是我也会迷糊,不懂有时候为什么要用return,然而break和continue也经常和他放在一起. 所以就一起来说一说,这三个看起来很简单,却常常会出错的关键词的具体用法 ...
- 简述Js中,判断对象为空对象的几种方式
1.空对象.空引用以及undefined三种概念的区别 空对象:是对象,但它的值是指向没有任何属性的对象的引用, {}是指 不含任何属性 的对象,当然对象属性包括 字面值和函数: 空引用:obj=nu ...
- Linux内核基础优化
Linux内核基础优化 net.ipv4.ip_forward = 1 #开启网络转发 net.ipv4.conf.default.rp_filter = 0 #开启代理功能 net.ipv4.con ...
- C语言博课作业11
一.本周作业头 这个作业属与那个课程 C语言程序设计I 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10130 ...
- 高性能异步分布式事务TCC框架(资料汇总)
https://github.com/yu199195/hmily tcc源码解析系列(一)之项目结构 https://yu199195.github.io/2017/10/11/TCC/tcc-on ...
- 移除list里面的值
public class IteratorTest { public static void main(String[] args) { List<String> list = new A ...