实验3 控制语句与组合数据类型应用编程
task1.py
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
random.randint(1,100)生成的随机整数范围是[1,100],能取到100
问题2
1.利用list(range(5))生成的有序序列范围是0,1,2,3,4,不包括5
2.利用list(range(1,5))生成的有序序列范围是1,2,3,4,不包括5
问题3
使用line8生成的集合s1,len(s1)不一定是5,因为集合会自动去除重复的元素。
问题4
使用line12-14生成的集合s2,len(s2)一定是5,因为line13的代码设置的循环条件就是当len(s2)<5时,循环才会继续执行。循环停止时,len(s2)一定为5.
task2.py
1 datas={'2049777001':['篮球','羽毛球','美食','漫画'], 2 '2049777002':['音乐','旅行'], 3 '2049777003':['马拉松','健身','游戏'], 4 '2049777004':[], 5 '2049777005':['足球','阅读'], 6 '2049777006':['发呆','闲逛'], 7 '2049777007':[], 8 '2049777008':['书法','电影'], 9 '2049777009':['音乐','阅读','电影','漫画'], 10 '2049777010':['数学','推理','音乐','旅行'] 11 } 12 a={} 13 for i in datas.values(): 14 for j in i: 15 if j not in a: 16 a[j]=1 17 elif j in a: 18 a[j]+=1 19 b=zip(a.values(),a.keys()) 20 b1=sorted(b,reverse=True) 21 for m,n in b1: 22 print("{}:{}".format(n,m))
运行结果截图
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 b=[] 9 s=[] 10 for i in temperatures: 11 b.append(int(i[3])) 12 s.append(int(i[2])) 13 zuidi=min(s) 14 zuigao=max(b) 15 sum1=0 16 sum2=0 17 for j in b: 18 sum1+=j 19 for k in s: 20 sum2+=k 21 pjd=int(sum2/len(s)) 22 pjg=int(sum1/len(b)) 23 print("未来一周最低气温:{}℃".format(zuidi)) 24 print("未来一周最高气温:{}℃".format(zuigao)) 25 print("未来一周平均气温区间:{}℃~{}℃".format(pjd,pjg))
运行结果截图
task4.py
1 import random 2 l=random.randint(1,31) 3 print("猜猜2022年5月哪一天会是你的lucky day:-)") 4 a=int(input("你有三次机会,猜吧(1~31):")) 5 if a==l: 6 print("哇,猜中啦:-)") 7 else: 8 if a<l: 9 print("猜早啦,你的lucky day还没到呢") 10 if a>l: 11 print("猜晚啦,你的lucky day已经过啦") 12 f=0 13 while(f<2): 14 b=int(input("再猜(1~31):")) 15 if b==l: 16 print("哇,猜中啦:-)") 17 f=300 18 else: 19 if b>l: 20 print("猜晚啦,你的lucky day已经过啦") 21 f+=1 22 if b<l: 23 print("猜早啦,你的lucky day还没到呢") 24 f+=1 25 if f==2: 26 print("次数用光啦") 27 print("偷偷告诉你,5月你的lucky day是{}号.good luck:-)".format(l))
运行结果截图
task5.py
1 x,n=eval(input("输入十进制整数x和要转换的进制n(2或8或16):")) 2 a=[] 3 c=x 4 while(c!=0): 5 if c%n<10: 6 f=str(c%n) 7 else: 8 f=chr(ord("A")+c%n%10) 9 a.append(f) 10 c=int((c-c%n)/n) 11 b="".join(a) 12 b1=b[::-1] 13 print("{}的{}进制是:{}".format(x,n,b1))
运行结果截图