题目:
现有一个数据库记录文件(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的更多相关文章

  1. python基础练习题1

    深深感知python基础是有多么重要,Ljh说一定要多练题,so,我现在开始要每天打卡练习python.加油! 01:求‘1-100’的偶数和 #第一种解法: sum=0 num=0 while nu ...

  2. python基础练习题(九九乘法表)

    又把python捡起来了,动手能力偏弱,决定每日一练,把基础打好! ------------------------------------------------------------------ ...

  3. python基础练习题

    购物车程序 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/3/6 21:01 # @Author : hyang # @Si ...

  4. 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 ...

  5. Python基础练习题100例(Python 3.x)

    1:题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 程序源 ...

  6. python基础练习题30道

    1.执行python脚本的两种方式 答:1>可以在python /home/xxxx.py 2>cd /home    ./xxxx.py  因为py脚本里面指定了python解释器的位置 ...

  7. 08: python基础练习题

    1.while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和 # 使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和 s = 0 i = ...

  8. 『Python基础练习题』day02

    1.判断下列逻辑语句的True, False 1) 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 2) ...

  9. Python学习【day03】- Python基础练习题(列表、元组、字典)

    #!/usr/bin/env python # -*- coding:utf8 -*- # 1.有两个列表 # l1 = [11,22,33] # l2 = [22,33,44] # a.获取内容相同 ...

  10. Python学习【day02】- Python基础练习题

    #!/usr/bin/env python # -*- coding:utf8 -*- # 执行Python 脚本的两种方式 # 答:①在windows的cmd窗口下 > D:/Python/p ...

随机推荐

  1. 什么是 ANR 如何避免它?

    在 Android 上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框.用户可以 ...

  2. Linux_Ubuntu之用户目录

    位于/home/user,称之为用户工作目录或家目录,表示方式: /home/user ~

  3. Jmeter(五)检查点

    录制的脚本回放成功了, 但是运行有可能出现失败的情况, 所以有必要让JMeter来帮我们验证测试结果的正确性. 在Jmeter中是用断言组件来实现此功能的. 首先, 在需要添加断言的请求后面, 添加响 ...

  4. python学习之数据类型(List)

    3.5 列表 3.5.1 列表的介绍 ​ 列表是python的基础数据类型之⼀,其他编程语言也有类似的数据类型. 比如JS中的数组, java中的数组等等.它是以[ ]括起来, 每个元素⽤' , '隔 ...

  5. python pytorch numpy DNN 线性回归模型

    1.直接奉献代码,后期有入门更新,之前一直在学的是TensorFlow, import torch from torch.autograd import Variable import torch.n ...

  6. 【VS开发】Caffelib中出现的问题:强制链接静态库所有符号(包括未被使用的)

    C++程序在链接一个静态库时,如果该静态库里的某些方法没有任何地方调用到,最终这些没有被调用到的方法或变量将会被丢弃掉,不会被链接到目标程序中.这样做大大减小生成二进制文件的体积.但是,某些时候,即使 ...

  7. 第八周课程总结&实验报告

    实验六 Java异常 •实验目的 •理解异常的基本概念: •掌握异常处理方法及熟悉常见异常的捕获方法. • 实验要求 •练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. •掌 ...

  8. [转帖]56核Xeon Platinum 9200现身 - 英特尔有史以来最大的CPU封装

    56核Xeon Platinum 9200现身 - 英特尔有史以来最大的CPU封装 https://www.cnbeta.com/articles/tech/835271.htm 当英特尔宣布上周正式 ...

  9. mac 简洁安装Kafka

    Mac 简洁安装Kafka 1.采用homebrew的方式 终端执行命令:brew install kafka 2.修改Kafka服务配置文件server.properties 执行命令: vi /u ...

  10. Codeforces Round #590 (Div. 3)(e、f待补

    https://codeforces.com/contest/1234/problem/A A. Equalize Prices Again #include<bits/stdc++.h> ...