实验3 控制语句与组合数据类型应用编程
1,实验任务1
1 import random 2 3 print('用列表存储随机整数:') 4 ls=[random.randint(1,100) for i in range(5)] 5 print(ls) 6 7 print('\n用集合存储随机整数:') 8 s1={random.randint(1,100) for i in range(5)} 9 print(s1) 10 11 print('\n用集合存储随机整数:') 12 s2=set() 13 while(len(s2)<5): 14 s2.add(random.randint(1,100)) 15 print(s2)
运行结果:
问题1:生成整数的范围为[1,100],可以取到100
问题2:list(range(5))生成的有序序列的范围是[0,5),不包括5;list(range(1,5))生成的有序数列的范围是[1,5),不包括5.
问题3:不一定是5
问题4:一定是5
2,实验任务2
1 datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'], 2 '2049777002': ['音乐', '旅行'], 3 '2049777003': ['马拉松', '健身', '游戏'], 4 '2049777004': [], 5 '2049777005': ['足球', '阅读'], 6 '2049777006': ['发呆', '闲逛'], 7 '2049777007': [], 8 '2049777008': ['书法', '电影'], 9 '2049777009': ['音乐', '阅读', '电影', '漫画'], 10 '2049777010': ['数学', '推理', '音乐', '旅行'] 11 } 12 b=set() 13 c={} 14 for data in datas: 15 b.update(datas[data]) 16 for a in b: 17 n=0 18 for data in datas: 19 for i in range(len(datas[data])): 20 if datas[data][i]==a: 21 n=n+1 22 c.setdefault(a,n) 23 c=sorted([(v,k) for k,v in c.items()],reverse=True) 24 for k,v in c: 25 print(f'{v}:{k}')
运行结果:
3,实验任务3
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 b=[] 9 c=[] 10 for a in temperatures: 11 b.append(a[2]) 12 c.append(a[3]) 13 print('未来一周最低气温:',min(b),'℃') 14 print('未来一周最高气温:',max(c),'℃') 15 n=0 16 m=0 17 for i in b: 18 n=n+eval(i) 19 k=int(n/len(b)) 20 for i in c: 21 m=m+eval(i) 22 g=int(m/len(c)) 23 print('未来一周平均气温区间:',k,'℃','~',g,'℃')
运行结果:
4,实验任务4
1 import random 2 b=random.randint(1,31) 3 print('猜猜2022年5月哪一天会是你的lucky day:-)') 4 a=int(input('你有三次机会,猜吧(1~31):')) 5 n=3 6 while n>=0: 7 if n!=0: 8 if a==b: 9 print('哇,猜中了:-)') 10 break 11 elif a>=b: 12 print('猜晚啦,你的lucky day已经过啦') 13 if n>1: 14 a=int(input('再猜(1~31):')) 15 n=n-1 16 else: 17 print('猜早啦,你的lucky day还没到啦') 18 if n>1: 19 a=int(input('再猜(1~31):')) 20 n=n-1 21 else: 22 print('次数用光啦.') 23 print('偷偷告诉你,5月你的lucky day是',b,'号。good luck:-)') 24 n=n-1
运行结果:
5,实验任务5
1 c,d=eval(input('输入十进制整数x和要转换的进制n(2或8或16):')) 2 x,n=c,d 3 a=[] 4 m={10:'A',11:'B',12:'C',13:'D',14:'E',15:'F',16:'H'} 5 while True: 6 if int(x/n)!=0: 7 b=x%n 8 x=x//n 9 if b>=10: 10 a.append(m[b]) 11 else: 12 a.append(b) 13 else: 14 b=x%n 15 a.append(b) 16 break 17 a=a[::-1] 18 print(f'{c}的{d}进制是:',end='') 19 for i in a: 20 print(i,end='')
运行结果: