实验3 控制语句与组合数据类型综合应用编程
#实验任务一 import random print('用列表存储随机整数: ') ls = [random.randint(1, 100) for i in range(5)] print(ls) print('\n用集合存储随机整数: ') s1 = {random.randint(1,100) for i in range(5)} print(s1) print('\n用集合存储随机整数: ') s2 = set() while(len(s2)<5): s2.add(random.randint(1,100)) print(s2)
问题1:生成的随机整数范围是1-100,包括1和100
问题2:[0,1,2,3,4]不包括5
[1,2,3,4],不包括5
问题3:是的
问题4:是的
#实验任务二 datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'], '2049777002': ['音乐', '旅行'], '2049777003': ['马拉松', '健身', '游戏'], '2049777004': [], '2049777005': ['足球', '阅读'], '2049777006': ['发呆', '闲逛'], '2049777007': [], '2049777008': ['书法', '电影'], '2049777009': ['音乐', '阅读', '电影', '漫画'], '2049777010': ['数学', '推理', '音乐', '旅行']} d1 = set() a1 = [] for x in datas.values(): for i in x: d1.add(i) for y in d1: a=0 for x in datas.values(): for i in x: if i == y: a += 1 a1.append(a) d2 = dict(zip(d1,a1)) l1 = list(d2.items()) l2 = sorted(l1, key=lambda x: x[1], reverse=True) for k, v in l2: print(f'{k}:{v}')
#实验任务三 temperatures= [['2022-04-18', '星期一', '10', '22'], ['2022-04-19', '星期二', '10', '22'], ['2022-04-20', '星期三', '12', '25'], ['2022-04-21', '星期四', '13', '28'], ['2022-04-22', '星期五', '16', '31'], ['2022-04-23', '星期六', '19', '31'], ['2022-04-24', '星期日', '19', '27']] a = [] b = [] for x in temperatures: a.append(eval(x[2])) b.append(eval(x[3])) print(f'''未来一周最低气温:{min(a)}℃ 未来一周最高气温:{max(b)}℃ 未来一周平均气温区间:{int(sum(a)/7)}℃~{int(sum(b)/7)}℃''')
#实验任务四 import random a = random.randint(1,31) print('猜猜2022年5月哪一天会是你的lucky day:-)') x = eval(input('你有三次机会,猜吧(1~31):')) if x == a: print('哇,猜中了:-)') else: i = 1 while i <= 2: if x > a: print('猜晚啦,你的lucky day已经过啦') elif x < a: print('猜早啦,你的lucky day还没到呢') elif x == a: print('哇,猜中了:-)') break x = eval(input('再猜(1~31):')) i += 1 if x == a: print('哇,猜中了:-)') else: print(f'''次数用光啦. 偷偷告诉你,5月你的lucky day 是{a}号.good luck:-)''')
#实验任务五 x, n = eval(input('输入十进制整数x和要转换的进制n(2或8或16):')) if n == 2: print('{}的{}进制是:{:b}'.format(x, n, x)) if n == 8: print('{}的{}进制是:{:o}'.format(x, n, x)) if n == 16: print('{}的{}进制是:{:X}'.format(x, n, x))