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真有趣,哈哈,我扛得住。