实验3 控制语句与组合数据类型应用编程
一、实验任务
1.实验任务1
task1.py:
1 import random 2 print('用列表存储随机整数: ') 3 ls=[random.randint(1,100) for i in range(5)] 4 print(ls) 5 6 print('\n用集合存储随机整数: ') 7 s1={random.randint(1,100) for i in range(5)} 8 print(s1) 9 10 print('\n用集合存储随机整数') 11 s2=set() 12 while(len(s2)<5): 13 s2.add(random.randint(1,100)) 14 print(s2)
运行截图:
问题1:
random.randint(1,100)生成的随机整数范围是1-100,能取到100。
问题2:
list(range(5))生成的有序序列范围是0-4,不包括5。
list(range(1,5))生成的有序序列范围是1-4,不包括5。
问题3:
使用line8生成的集合s1,len(s1)不一定是5。
问题a:
使用line12-14生成的集合s2,len(s2)一定是5。
2.实验任务2
task2.py:
1 datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'], 2 '2049777002': ['音乐', '旅行'], 3 '2049777003': ['马拉松', '健身', '游戏'], 4 '2049777004': [], 5 '2049777005': ['足球', '阅读'], 6 '2049777006': ['发呆', '闲逛'], 7 '2049777007': [], 8 '2049777008': ['书法', '电影'], 9 '2049777009': ['音乐', '阅读', '电影', '漫画'], 10 '2049777010': ['数学', '推理', '音乐', '旅行']} 11 dict={} 12 for k in datas.values(): 13 for i in k: 14 dict[i] = dict.get(i, 0) + 1 15 a=sorted(dict.items(),key=lambda x:x[1],reverse=True) 16 for key,value in a: 17 print(f'{key}:{value}')
运行截图:
3.实验任务3
task3.py:
1 temperatures= [['2022-04-18', '星期一', '10', '22'], 2 ['2022-04-19', '星期二', '10', '22'], 3 ['2022-04-20', '星期三', '12', '25'], 4 ['2022-04-21', '星期四', '13', '28'], 5 ['2022-04-22', '星期五', '16', '31'], 6 ['2022-04-23', '星期六', '19', '31'], 7 ['2022-04-24', '星期日', '19', '27']] 8 a=[i[2] for i in temperatures] 9 b=[i[3] for i in temperatures] 10 max=max(b) 11 min=min(a) 12 sum1=0 13 sum2=0 14 for c in a: 15 sum1=sum1+int(c) 16 for d in b: 17 sum2=sum2+int(d) 18 a1=int(sum1)//7 19 a2=int(sum2)//7 20 print('未来一周最低气温:{}℃'.format(min)) 21 print('未来一周最高气温:{}℃'.format(max)) 22 print('未来一周平均气温区间: {}°C ~ {}°C'.format(a1,a2))
运行截图:
4.实验任务4
task4.py:
1 import random 2 a=random.randint(1,31) 3 print('猜猜2022年5月哪天是你的lucky day:') 4 count=0 5 while (count<3): 6 x = int(input('你有三次机会,猜吧(1-31):')) 7 if x==a: 8 print('哇,猜中啦') 9 break 10 elif x < a: 11 print('猜早啦,你的lucky day 还没到呢') 12 else: 13 print('猜晚了,你的lucky day 已经过啦') 14 count += 1 15 if count==3: 16 print('次数用完啦.') 17 print('偷偷告诉你,5月你的lucky day 是{}号。 good luck!'.format(a))
运行截图:
5.实验任务5
task5.py:
1 x,y = eval(input("输入十进制整数x和要转换的进制n(2或8或16):")) 2 list=[] 3 a=x//y 4 b=x%y 5 list.append(b) 6 while a!=0: 7 list.append(a%y) 8 a=a//y 9 print(f"{x}的{y}进制是:", end = '') 10 for i in list[::-1]: 11 if i==10: 12 print('A',end='') 13 elif i == 11: 14 print('B', end='') 15 elif i == 12: 16 print('C', end='') 17 elif i == 13: 18 print('D', end='') 19 elif i == 14: 20 print('E', end='') 21 elif i == 15: 22 print('F', end='') 23 else: 24 print(i,end='')
运行截图:
二、实验任务总结
通过此次实验任务我对循环语句的使用更熟练了,也学会了十进制,八进制和十六进制之间的转换。