题目:
现有一个数据库记录文件(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()

												

最新文章

  1. Spring MVC MultipartFile实现图片上传
  2. ping 和 traceroute 命令
  3. java中将汉字转换成16进制
  4. Android IOS WebRTC 音视频开发总结(四三)-- 诚信交易案例分享
  5. linux 常用端口列表
  6. 转】Maven学习总结(五)——聚合与继承
  7. 【POJ3243】【拓展BSGS】Clever Y
  8. 使用gSoap规避和改动ONVIF标准类型结构的解析
  9. 在egret中使用protobuf
  10. C#模板打印excel
  11. redux核心思路和代码解析
  12. hive数据库的哪些函数操作是否走MR
  13. nginx问题相关记录
  14. java相关技术问答(一)
  15. 还没被玩坏的robobrowser(5)——Beautiful Soup的过滤器
  16. MySQL存储过程的异常处理
  17. wamp下修改mysql root用户的登录密码方法
  18. InfluxDB 的用户
  19. 改进意见的答复及bug重现
  20. RHEL 6.4(i386)安装MySQL 5.6的方法

热门文章

  1. Windows 10下怎么远程连接 Ubuntu 16.0.4(小白级教程)
  2. 阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置
  3. 【DVWA】Brute Force(暴力破解)通关教程
  4. MySQL 树形结构 根据指定节点 获取其所有父节点序列
  5. runoob_Java 序列化
  6. squid代理使用yum源
  7. 转载----c++ static修饰的函数作用与意义
  8. linux进阶命令
  9. FileChannel原理
  10. js中dom选择器