实验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))

运行结果截图

 

posted @ 2022-04-22 23:03  昏汐  阅读(42)  评论(2编辑  收藏  举报