实验3 控制语句与组合数据类型综合应用
1.实验任务1
import random print('用列表存储随机整数: ') ls = [random.randint(1,100) for i in range(5)] print(ls) print('\n用集合存储随机整数: ') s2=set() while (len(s2)<5): s2.add(random.randint(1,100)) print(s2)
问题答案:
1.范围是1~100,包括1和100.
2. 0~4,不包括5;1~4,不包括5.
3.不一定,如果随机数重复,len(s1)<5
4.一定是5
2.实验任务2
datas={'2049777001':['篮球','羽毛球','美食','漫画'], '2049777002':['音乐','旅行'], '2049777003':['马拉松','健身','游戏'], '2049777004':[], '2049777005':['足球','阅读'], '2049777006':['发呆','闲逛'], '2049777007':[], '2049777008':['书法','电影'], '2049777009':['音乐','阅读','电影','漫画'], '2049777010':['数学','推理','音乐','旅行'] } L=list(datas.values()) s=set() d={} for l in L: for i in l: s.add(i) for i in s: si=0 for j in L: for k in j: if k==i: si+=1 d.setdefault(i,si) d1=zip(d.values(),d.keys()) d2=sorted(d1,reverse=True) for i in d2: print(f'{i[1]}:{i[0]}')
3.实验任务3
temperature=[['2022-04-18','星期一','10','22'], ['2022-04-19','星期二','10','22'], ['2022-04-20','星期三','12','25'], ['2022-04-21','星期四','13','28'], ['2022-01-22','星期五','16','31'], ['2022-04-23','星期六','19','31'], ['2022-04-24','星期日','19','27']] d,g,sd,sg=[],[],0,0 for i in temperature: d.append(i[2]) g.append(i[3]) for i in range(7): sd+=int(d[i]) sg+=int(g[i]) ad=sd//7 ag=sg//7 print(f'未来一周最低气温:{min(d)}℃') print(f'未来一周最高气温:{max(g)}℃') print(f'未来一周平均气温区间:{ad}℃~{ag}℃')
4.实验任务4
d=randint(1,31) print('猜猜2022年5月哪一天会是你的lucky day:-)') s1=int(input('你有三次机会,猜吧(1~31): ')) s2,s3='','' if s1>d: print('猜晚啦,你的lucky day已经过啦') s2=int(input('再猜(1~31): ')) elif s1<d: print('猜早啦,你的lucky day还没到呢') s2=int(input('再猜(1~31): ')) else: print('哇,猜中了:-)') if s2>d: print('猜晚啦,你的lucky day已经过啦') s3=int(input('再猜(1~31): ')) elif s2<d: print('猜早啦,你的lucky day还没到呢') s3=int(input('再猜(1~31): ')) else: print('哇,猜中了:-)') if s3==d: print('哇,猜中了:-)') else: print('次数用光啦.') print(f'偷偷告诉你,5月你的lucky day是{d}号. good luck:-)')
5.实验任务5
x,n=input('输入十进制整数x和要转换的进制n(2或8或16): ').split(',') j,k=int(x),int(n) l,l2,m=[],[],[] l1=['10','11','12','13','14','15'] for i in range(ord('A'),ord('F')+1): l2.append(chr(i)) from math import * while True: l.append(str(j%k)) j=floor(j/k) if j==0: break if k==2 or k==8: s=''.join(l) print(f'{x}的{n}进制是:{s[::-1]}') else: for i in l: if i in l1: m.append(l2[l1.index(i)]) else: m.append(i) s=''.join(m) print(f'{x}的16进制是:{s[::-1]}')
实验总结:
1.实验5用的是pycharm(之前是pyscripter),熟悉了pycharm的使用
2.复习了各种数据类型之间的相互转换
3. 学会使用了zip()函数,复习了输出'A'~'Z'的方法
4.加深对循环结构、分支结构的熟练度