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

运行结果:

 

posted @ 2022-04-24 14:47  炸呼  阅读(25)  评论(2编辑  收藏  举报