实验3 控制语句与组合数据类型应用编程

task1.py
 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. 整数范围是1-100,取得到100

2. 有序序列范围是0-4,不包含5
    有序序列范围是1-4,不包含5

3. len(s1)不一定是5,因为randint有可能取到相等的值,而集合中的元素不重复,所以在集合中只显示一次

4. 一定是5

task2.py
 1 datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'],
'2049777002': ['音乐', '旅行'],
'2049777003': ['马拉松', '健身', '游戏'],
'2049777004': [],
'2049777005': ['足球', '阅读'],
'2049777006': ['发呆', '闲逛'],
'2049777007': [],
'2049777008': ['书法', '电影'],
'2049777009': ['音乐', '阅读', '电影', '漫画'],
'2049777010': ['数学', '推理', '音乐', '旅行'] } 2 list1=list(datas.values()) 3 s=set() 4 list2=[] 5 for i in list1: 6 for m in i: 7 s.add(m) 8 for j in s: 9 n=0 10 for i in list1: 11 for m in i: 12 if j==m: 13 n+=1 14 list2.append(n) 15 d2=dict(zip(s,list2)) 16 l1=list(d2.items()) 17 l2=sorted(l1,key=lambda i:i[1],reverse=True) 18 for x,y in l2: 19 print(f'{x}:{y}')

 

task3.py

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

 

task4.py

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

 

task5.py

 1 s=input('输入十进制整数x和要转换的进制n(2或8或16):')
 2 t=['A','B','C','D','E','F']
 3 for i in range(len(s)):
 4     if s[i]==',':
 5         k=i
 6         break
 7 ans=''
 8 x=int(s[0:i])
 9 n=int(s[i+1:])
10 m=x
11 while x//n!=0:
12     if x%n<10:
13       ans=str(x%n)+ans
14     else:
15         i=x%n-10
16         ans=t[i]+ans
17     x=x//n
18 ans=str(x)+ans
19 print(f'{m}的{n}进制是:{ans}')

 

posted @ 2022-04-25 21:44  虞渊  阅读(17)  评论(3编辑  收藏  举报