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

一、实验任务

1.实验任务1

task1.py:

 1 import random
 2 print('用列表存储随机整数: ')
 3 ls=[random.randint(1,100) for i in range(5)]
 4 print(ls)
 5 
 6 print('\n用集合存储随机整数: ')
 7 s1={random.randint(1,100) for i in range(5)}
 8 print(s1)
 9 
10 print('\n用集合存储随机整数')
11 s2=set()
12 while(len(s2)<5):
13     s2.add(random.randint(1,100))
14 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生成的集合s1len(s1)不一定是5。

问题a:

使用line12-14生成的集合s2len(s2)一定是5

 

2.实验任务2

task2.py:

 1 datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'],
 2          '2049777002': ['音乐', '旅行'],
 3          '2049777003': ['马拉松', '健身', '游戏'],
 4          '2049777004': [],
 5          '2049777005': ['足球', '阅读'],
 6          '2049777006': ['发呆', '闲逛'],
 7          '2049777007': [],
 8          '2049777008': ['书法', '电影'],
 9          '2049777009': ['音乐', '阅读', '电影', '漫画'],
10          '2049777010': ['数学', '推理', '音乐', '旅行']}
11 dict={}
12 for k in datas.values():
13     for i in k:
14         dict[i] = dict.get(i, 0) + 1
15 a=sorted(dict.items(),key=lambda x:x[1],reverse=True)
16 for key,value in a:
17     print(f'{key}:{value}')

运行截图:

 

3.实验任务3

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 a=[i[2] for i in temperatures]
 9 b=[i[3] for i in temperatures]
10 max=max(b)
11 min=min(a)
12 sum1=0
13 sum2=0
14 for c in a:
15     sum1=sum1+int(c)
16 for d in b:
17     sum2=sum2+int(d)
18 a1=int(sum1)//7
19 a2=int(sum2)//7
20 print('未来一周最低气温:{}℃'.format(min))
21 print('未来一周最高气温:{}℃'.format(max))
22 print('未来一周平均气温区间: {}°C ~ {}°C'.format(a1,a2))

运行截图:

 

4.实验任务4

task4.py:

 1 import  random
 2 a=random.randint(1,31)
 3 print('猜猜2022年5月哪天是你的lucky day:')
 4 count=0
 5 while  (count<3):
 6     x = int(input('你有三次机会,猜吧(1-31):'))
 7     if x==a:
 8         print('哇,猜中啦')
 9         break
10     elif x < a:
11         print('猜早啦,你的lucky day 还没到呢')
12     else:
13         print('猜晚了,你的lucky day 已经过啦')
14     count += 1
15     if count==3:
16         print('次数用完啦.')
17         print('偷偷告诉你,5月你的lucky day 是{}号。 good luck!'.format(a))

运行截图:

 

5.实验任务5

task5.py:

 1 x,y = eval(input("输入十进制整数x和要转换的进制n(2或8或16):"))
 2 list=[]
 3 a=x//y
 4 b=x%y
 5 list.append(b)
 6 while a!=0:
 7     list.append(a%y)
 8     a=a//y
 9 print(f"{x}的{y}进制是:", end = '')
10 for i in list[::-1]:
11     if  i==10:
12         print('A',end='')
13     elif i == 11:
14         print('B', end='')
15     elif i == 12:
16         print('C', end='')
17     elif i == 13:
18         print('D', end='')
19     elif i == 14:
20         print('E', end='')
21     elif i == 15:
22         print('F', end='')
23     else:
24         print(i,end='')

运行截图:

 

二、实验任务总结

通过此次实验任务我对循环语句的使用更熟练了,也学会了十进制,八进制和十六进制之间的转换。

 

posted @ 2022-04-23 15:11  Dimple$  阅读(17)  评论(3编辑  收藏  举报