实验3 控制语句与组合数据类型应用编程

task 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:

random.randint(1,100)生成的随机整数范围是1-100,能取到100。

问题2:

list(range(5))生成的有序序列范围是0-4,不包括5。

list(range(1,5))生成的有序序列范围是1-4,不包括5。

问题3:

使用line8生成的集合s1len(s1)一定是5。

问题a:

使用line12-14生成的集合s2len(s2)一定是5

task 2

 1 datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'],
 2          '2049777002': ['音乐', '旅行'],
 3          '2049777003': ['马拉松', '健身', '游戏'],
 4          '2049777004': [],
 5          '2049777005': ['足球', '阅读'],
 6          '2049777006': ['发呆', '闲逛'],
 7          '2049777007': [],
 8          '2049777008': ['书法', '电影'],
 9          '2049777009': ['音乐', '阅读', '电影', '漫画'],
10          '2049777010': ['数学', '推理', '音乐', '旅行']
11          }
12 dict={}
13 for k in datas.values():
14     for i in k:
15        dict[i] = dict.get(i, 0) + 1
16 a=sorted(dict.items(),key=lambda x:x[1],reverse=True)
17 for key,value in a:
18     print(f'{key}:{value}')

task 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 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))

task 4

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

task5

 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='')

实验总结:

通过本次实验训练,我对循环语句使用更加熟练,对于列表里元素的调取也更熟练了。

posted @ 2022-04-25 20:33  熊猫小丸子  阅读(34)  评论(1编辑  收藏  举报