实验3
task1
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:
1到100之间的整数,能取到100。
问题2:
list(range(5))范围是0到5,不包括5。;list(range(1,5))范围是1到5,不包括5。
问题3:
否。
问题4:
是。
task2
1 datas={'2049777001':['篮球','羽毛球','美食','漫画'],'2049777002':['音乐','旅行'],'2049777003':['马拉松','健身','游戏'],'2049777004':[],'2049777005':['足球','阅读'],'2049777006':['发呆','闲逛'],'2049777007':[],'2049777008':['书法','电影'],'2049777009':['音乐','阅读','电影','漫画'],'2049777010':['数学','推理','音乐','旅行']} 2 list1=list(datas.values()) 3 list2=[j for item in list1 for j in item] 4 result={} 5 for i in list2: 6 if i not in result: 7 result[i]=1 8 else: 9 result[i]+=1 10 for k in sorted(result,key=result.__getitem__,reverse=True): 11 print(k,result[k])
task3
1 temperatures=[['2022-04-18','星期一','10','22'],['2022-04-19','星期二','10','22'],['2022-04-20','星期三','12','25'],['2022-04-21','星期四','13','28'],['2022-04-22','星期五','16','31'],['2022-04-23','星期六','19','31'],['2022-04-24','星期日','19','27']] 2 list1=[] 3 for i in range(0,7): 4 list1.append(temperatures[i][2]) 5 list2=[] 6 for j in range(0,7): 7 list2.append(temperatures[j][3]) 8 a=min(list1) 9 b=max(list2) 10 sum1=0 11 sum2=0 12 for m in list1: 13 sum1+=eval(m) 14 for n in list2: 15 sum2+=eval(n) 16 minimum=sum1/len(list1) 17 maximum=sum2/len(list2) 18 print('未来一周最低气温:{}℃'.format(a)) 19 print('未来一周最高气温:{}℃'.format(b)) 20 print('未来一周平均气温区间:{}℃~{}℃'.format(int(minimum),int(maximum)))
task4
1 import random 2 num=random.randint(1,31) 3 print('猜猜2022年5月哪一天回事你的lucky day:-)') 4 s=eval(input('你有三次机会,猜吧(1~31):')) 5 if s!=num: 6 if s>num: 7 print('猜晚啦,你的lucky day已经过啦') 8 i=1 9 while i<=2: 10 s=eval(input('再猜(1~31):')) 11 if s>num: 12 print('猜晚啦,你的lucky day已经过啦') 13 i=i+1 14 elif s<num: 15 print('猜早啦,你的lucky day还没到呢') 16 i=i+1 17 elif s==sum: 18 print('哇,猜中啦:-)') 19 break 20 print('次数用光啦') 21 print('偷偷告诉你,5月你的lucky day是{}号。good luck'.format(num)) 22 elif s<num: 23 print('猜早啦,你的lucky day还没到呢') 24 i =1 25 while i <= 2: 26 s = eval(input('再猜(1~31):')) 27 if s > num: 28 print('猜晚啦,你的lucky day已经过啦') 29 i = i + 1 30 elif s < num: 31 print('猜早啦,你的lucky day还没到呢') 32 i = i + 1 33 elif s == sum: 34 print('哇,猜中啦:-)') 35 break 36 print('次数用光啦') 37 print('偷偷告诉你,5月你的lucky day是{}号。good luck'.format(num)) 38 else: 39 print('哇,猜中了:-)')
task5
1 s=input('输入十进制整数x和要转换的进制n(2或8或16):') 2 t=['A','B','C','D','E','F'] 3 for i in range(len(s)): 4 if s[i]==',': 5 k=i 6 break 7 ans='' 8 x=int(s[0:i]) 9 n=int(s[i+1:]) 10 m=x 11 while x//n!=0: 12 if x%n<10: 13 ans=str(x%n)+ans 14 else: 15 i=x%n-10 16 ans=t[i]+ans 17 x=x//n 18 ans=str(x)+ans 19 print(f'{m}的{n}进制是:{ans}')