实验3 控制语句与组合数据类型应用编程
1 #task1.py 2 import random 3 print('用列表存储随机整数: ') 4 ls = [random.randint(1, 100) for i in range(5)] 5 print(ls) 6 print('\n用集合存储随机整数: ') 7 s1 = {random.randint(1, 100) for i in range(5)} 8 print(s1) 9 print('\n用集合存储随机整数: ') 10 s2 = set() 11 while(len(s2)<5): 12 s2.add(random.randint(1,100)) 13 print(s2)
问题1: random.randint(1,100) 生成的随机整数范围是?能否取到100?
大于等于1小于等于100,可以取到100
问题2:利用 list(range(5)) 生成的有序序列范围是?是否包括5?
大于等于0小于5,不包括5
利用 list(range(1,5)) 生成的有序序列范围是?是否包括5?
大于等于1小于5,不包括5
问题3:使用line8生成的集合s1,len(s1)一定是5吗?
不一定
问题4:使用line12-14生成的集合s2,len(s2)一定是5吗?
一定
1 #task2.py 2 datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'], 3 '2049777002': ['音乐', '旅行'], 4 '2049777003': ['马拉松', '健身', '游戏'], 5 '2049777004': [], 6 '2049777005': ['足球', '阅读'], 7 '2049777006': ['发呆', '闲逛'], 8 '2049777007': [], 9 '2049777008': ['书法', '电影'], 10 '2049777009': ['音乐', '阅读', '电影', '漫画'], 11 '2049777010': ['数学', '推理', '音乐', '旅行'] 12 } 13 hobby=datas.values() 14 hobby1=[] 15 for i in hobby: 16 for j in i: 17 hobby1.append(j) 18 a=hobby1.count('篮球') 19 b=hobby1.count('羽毛球') 20 c=hobby1.count('美食') 21 d=hobby1.count('漫画') 22 e=hobby1.count('音乐') 23 f=hobby1.count('旅行') 24 g=hobby1.count('马拉松') 25 h=hobby1.count('健身') 26 i=hobby1.count('游戏') 27 j=hobby1.count('足球') 28 k=hobby1.count('阅读') 29 l=hobby1.count('发呆') 30 m=hobby1.count('闲逛') 31 n=hobby1.count('书法') 32 o=hobby1.count('电影') 33 p=hobby1.count('数学') 34 q=hobby1.count('推理') 35 list2=[a,b,c,d,e,f,g,h,i,j,k,o,p,q] 36 list1=['篮球','羽毛球', '美食', '漫画','音乐', '旅行','马拉松', '健身', '游戏','足球', '阅读','发呆', '闲逛','书法', '电影','数学', '推理'] 37 z=list(zip(list2,list1)) 38 list3=sorted(z,reverse=True) 39 for key,value in list3: 40 print(f'{value}:{key}')
1 #task3.py 2 temperatures= [['2022-04-18', '星期一', '10', '22'], 3 ['2022-04-19', '星期二', '10', '22'], 4 ['2022-04-20', '星期三', '12', '25'], 5 ['2022-04-21', '星期四', '13', '28'], 6 ['2022-04-22', '星期五', '16', '31'], 7 ['2022-04-23', '星期六', '19', '31'], 8 ['2022-04-24', '星期日', '19', '27']] 9 min=temperatures[0][0] 10 max=temperatures[0][0] 11 for i in range(len(temperatures)): 12 for j in range(2,4): 13 if (min>temperatures[i][j]): 14 min=temperatures[i][j] 15 for i in range(len(temperatures)): 16 for j in range(2,4): 17 if (max<temperatures[i][j]): 18 max=temperatures[i][j] 19 print(f'未来一周的最低气温:{min}℃') 20 print(f'未来一周最高气温:{max}℃') 21 sum1=0 22 sum2=0 23 for i in range(len(temperatures)): 24 sum1+=int(temperatures[i][2]) 25 min_jun=sum1/(len(temperatures)) 26 for i in range(len(temperatures)): 27 sum2+=int(temperatures[i][3]) 28 max_jun=sum2/(len(temperatures)) 29 print(f'未来一周平均气温区间:{int(min_jun)}℃~{int(max_jun)}℃')
1 #task4.py 2 import random 3 print('猜猜2022年5月哪一天是你的lucky day:-)') 4 day=random.randint(1,31) 5 guess=int(input('你有三次机会,猜吧(1~31):')) 6 if guess > day: 7 print('猜晚啦,你的lucky day已经过啦') 8 guess = int(input('再猜(1~31):')) 9 if guess > day: 10 print('猜晚啦,你的lucky day已经过啦') 11 guess = int(input('再猜(1~31):')) 12 if guess > day: 13 print('猜晚啦,你的lucky day已经过啦') 14 print('次数用完啦。') 15 print(f'偷偷告诉你,五月你的lucky day是{day}号.good luck:-)') 16 elif guess < day: 17 print('猜早啦,你的lucky day还没到呢') 18 print('次数用完啦。') 19 print(f'偷偷告诉你,五月你的lucky day是{day}号.good luck:-)') 20 else: 21 print('哇,猜中了:-)') 22 elif guess < day: 23 print('猜早啦,你的lucky day还没到呢') 24 guess = int(input('再猜(1~31):')) 25 if guess > day: 26 print('猜晚啦,你的lucky day已经过啦') 27 print('次数用完啦。') 28 print(f'偷偷告诉你,五月你的lucky day是{day}号.good luck:-)') 29 elif guess < day: 30 print('猜早啦,你的lucky day还没到呢') 31 print('次数用完啦。') 32 print(f'偷偷告诉你,五月你的lucky day是{day}号.good luck:-)') 33 else: 34 print('哇,猜中了:-)') 35 else: 36 print('哇,猜中了:-)') 37 elif guess < day: 38 print('猜早啦,你的lucky day还没到呢') 39 guess = int(input('再猜(1~31):')) 40 if guess > day: 41 print('猜晚啦,你的lucky day已经过啦') 42 guess = int(input('再猜(1~31):')) 43 if guess > day: 44 print('猜晚啦,你的lucky day已经过啦') 45 print('次数用完啦。') 46 print(f'偷偷告诉你,五月你的lucky day是{day}号.good luck:-)') 47 elif guess < day: 48 print('猜早啦,你的lucky day还没到呢') 49 print('次数用完啦。') 50 print(f'偷偷告诉你,五月你的lucky day是{day}号.good luck:-)') 51 else: 52 print('哇,猜中了:-)') 53 elif guess < day: 54 print('猜早啦,你的lucky day还没到呢') 55 guess = int(input('再猜(1~31):')) 56 if guess > day: 57 print('猜晚啦,你的lucky day已经过啦') 58 print('次数用完啦。') 59 print(f'偷偷告诉你,五月你的lucky day是{day}号.good luck:-)') 60 elif guess < day: 61 print('猜早啦,你的lucky day还没到呢') 62 print('次数用完啦。') 63 print(f'偷偷告诉你,五月你的lucky day是{day}号.good luck:-)') 64 else: 65 print('哇,猜中了:-)') 66 else: 67 print('哇,猜中了:-)') 68 else: 69 print('哇,猜中了:-)')
1 #task5.py 2 x,n=input('输入一个十进制数x和要转换的进制是(2或8或16):').split(',') 3 x1=int(x) 4 x2=int(x) 5 n1=int(n) 6 number_list=[] 7 while x1 != 0: 8 if n1 == 2: 9 a = int(x1 % n1) 10 number_list.append(a) 11 x1 = (x1 - a) / n1 12 elif n1 == 8: 13 a = int(x1 % n1) 14 number_list.append(a) 15 x1 = (x1 - a) / n1 16 elif n1== 16: 17 a = int(x1 % n1) 18 number_list.append(a) 19 x1 = (x1 - a) / n1 20 sixteen = [str(chr(55+i)) if i not in range(10) else str(i) for i in number_list[::-1]] 21 print(f"{x2}的{n1}进制是:{''.join(sixteen)}")