实验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:random.randint(1,100)生成的随机整数范围是1~100,可以取到100。

问题2:利用list(range(5))生成的有序序列范围是1~4,不包括5。

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

问题3:len(s1)不一定是5。

问题4:len(s2)一定是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 a = list(datas.values())
12 b = []
13 for i in a:
14     for m in i:
15         b.append(m)
16 n = {}
17 for k in b:
18     n[k] = b.count(k)
19 list1 = list(n.items())
20 list2 = [(b, a) for a, b in list1]
21 for x, y in reversed(sorted(list2)):
22     print(f'{y}:{x}')

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 a = []
 9 b = []
10 for i in temperatures:
11     a.append(int(i[2]))
12     b.append(int(i[3]))
13 print(f'未来一周最低气温:{min(a)}℃')
14 print(f'未来一周最高气温:{max(b)}℃')
15 x = 0
16 for min in a:
17     x = x + min
18 y = 0
19 for max in b:
20     y = y + max
21 n = int(x / len(a))
22 m = int(y / len(b))
23 print(f'未来一周平均气温区间:{n}℃~{m}℃')

 

4.实验任务4

 1 import random
 2 lucky_day=random.randint(1,31)
 3 print('猜猜2022年5月哪一天会是你的lucky day:-)')
 4 b=int(input('你有三次机会,猜吧(1~31):'))
 5 k=0
 6 while True:
 7     k=k+1
 8     if lucky_day==b:
 9         print('哇~猜中了')
10         break
11     elif lucky_day<b:
12         print('猜晚了,你的lucky day已经过啦')
13     else:
14         print('猜早了,你的lucky day还没到呢')
15     if k>=3:
16         print('次数用光了.')
17         print(f'偷偷告诉你,5月你的lucky day是{lucky_day}号。good luck:-)')
18         break
19     b = int(input('再猜(1~31):'))

5.实验任务5

 1 (e, n) = (input('输入十进制整数x和要转换的进制n(2或8或16):').split(','))
 2 x = int(e)
 3 c = int(e)
 4 n = int(n)
 5 m = []
 6 while x != 0:
 7     if n == 2:
 8         a = int(x % n)
 9         m.append(a)
10         x = (x - a) / n
11     elif n == 8:
12         a = int(x % n)
13         m.append(a)
14         x = (x - a) / n
15     elif n == 16:
16         a = int(x % n)
17         m.append(a)
18         x = (x - a) / n
19 m.reverse()
20 l = [str(i) for i in m]
21 b = {'10': 'A', '11': 'B', '12': 'C', '13': 'D', '14': 'E', '15': 'F'}
22 for k in l:
23     if k in b:
24         l[l.index(k)] = b[k]
25 print('%d的%d进制是:' % (c, n), ''.join(l))

实验总结:python真有趣,哈哈,我扛得住。

posted @ 2022-04-23 14:19  气工一班刘璇  阅读(37)  评论(3编辑  收藏  举报