实验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)

问题1random.randint(1,100)生成的随机整数范围是?能否取到100

随机范围是1到100,可以取到100

问题2:利用list(range(5))生成的有序序列范围是?是否包括5利用list(range(1,5))生成的有序序列范围是?是否包括5

(0,1,2,3,4),不包括5;(1,2,3,4),不包括5

问题3:使用line8生成的集合s1len(s1)一定是5吗?

不一定

问题4:使用line12-14生成的集合s2len(s2)一定是5吗?

不一定

 

task2.py

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

 

task3.py

1 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']]
2 low=[int(id1[2]) for id1 in temperatures]
3 high=[int(id2[3]) for id2 in temperatures]
4 print(f"未来一周最低气温:{min(low)}°C")
5 print(f"未来一周最高气温:{max(high)}°C")
6 print(f"未来一周平均气温区间:{int(sum(low)/len(low))}°C ~ {int(sum(high)/len(high))}°C")

 

task4.py

 1 from random import *
 2 def cai(x):
 3     if x > aaa:
 4         return "猜晚啦,你的lucky day已经过啦\n再猜(1~31):"
 5     elif x < aaa:
 6         return "猜早啦,你的lucky day还没到呢\n再猜(1~31):"
 7     else:
 8         return "哇,猜中了:-)"
 9 aaa, i = randint(1, 31), 0
10 bbb = int(input("猜猜2022年5月那一天会是你的lucky day:-)\n你有三次机会,猜吧(1~31):"))
11 while bbb != "哇,猜中了:-)" and i < 2:
12     bbb, i = int(input(cai(bbb))), i + 1
13     if i == 2: print(f"次数用光了\n偷偷告诉你,5月你的lucky day是{aaa}号,good luck:—)")

 

task5.py


x, old_code = eval(input("输入十进制整数x:")), []
n, s = eval(input("输入需要转换的进制:")), x
while x // n != 0:
old_code.append(x % n)
x = x // n
if x // n == 0: old_code.append(x % n)
new_code = list(str(i) if i < 10 else chr(i + 55) for i in old_code[::-1])
print(f"{s}的{n}进制是:" + "".join(new_code))
posted @ 2022-04-25 09:55  velpro1129  阅读(12)  评论(2编辑  收藏  举报