控制语句与组合数据类型综合应用编程
task1
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: random.randint(1,100) 生成的随机整数范围是:【1,100】能否取到100?(否) 问题2:利用 list(range(5)) 生成的有序序列范围是:【0,4】 是否包括5?(否) 利用 list(range(1,5)) 生成的有序序列范围是:【1,4】是否包括5?(否) 问题3:使用line8生成的集合s1,len(s1)一定是5吗?(是) 问题4:使用line12-14生成的集合s2,len(s2)一定是5吗? (是)
task2
datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'],'2049777002': ['音乐', '旅行'],'2049777003': ['马拉松', '健身', '游戏'],'2049777004': [],'2049777005': ['足球', '阅读'],'2049777006': ['发呆', '闲逛'],'2049777007': [],'2049777008': ['书法', '电影'],'2049777009': ['音乐', '阅读', '电影', '漫画'],'2049777010': ['数学', '推理', '音乐', '旅行']} a=list(datas.values()) b= [str(x) for item in a for x in item] c={} for i in b: c[i]=b.count(i) d=list(c.items()) e=sorted(d,key=lambda x:x[1], reverse=True) for m,n in e: print(f'{m}:{n}')
task3
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']] b=[] s=[] for i in temperatures: b.append(int(i[3])) s.append(int(i[2])) zuidi=min(s) zuigao=max(b) sum1=0 sum2=0 for j in b: sum1+=j for k in s: sum2+=k pjd=int(sum2/len(s)) pjg=int(sum1/len(b)) print("未来一周最低气温:{}℃".format(zuidi)) print("未来一周最高气温:{}℃".format(zuigao)) print("未来一周平均气温区间:{}℃~{}℃".format(pjd,pjg))
task4
import random print('猜猜2022年5月哪一天会是你的lucky day:-)') lucky_day = random.randint(1,31) num = int(input('你有三次机会,猜吧(1~31):')) count = 0 while True: if num > lucky_day: print(f'猜晚啦,你的lucky day已经过啦') count += 1 if count == 3: print(f'次数用光了\n偷偷告诉你,5月你的lucky day是{lucky_day}号。good luck:-)') break num = int(input('再猜(1~31):')) elif num < lucky_day: print(f'猜早啦,你的lucky day还没到呢') count += 1 if count == 3: print(f'次数用光了\n偷偷告诉你,5月你的lucky day是{lucky_day}号。good luck:-)') break num = int(input('再猜(1~31):')) else: print('哇,猜对啦:-)') break
x,n=eval(input("输入十进制整数x和要转换的进制n(2或8或16):")) a=[] c=x while(c!=0): if c%n<10: f=str(c%n) else: f=chr(ord("A")+c%n%10) a.append(f) c=int((c-c%n)/n) b="".join(a) b1=b[::-1] print("{}的{}进制是:{}".format(x,n,b1))