3.1
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.范围是1到100,1和100都能取到
2.list(range(5))的范围是0到4,包括1不包括5
list(range(1,5))的范围是1到4,不包括5
3.使用line8生成的集合s1,len(s1)不一定是5,字典中不能有重复的元素,如果有则会去掉,导致len(s1)变短
4.使用line12-14生成的集合s2,len(s2)一定是5,因为while的循环条件必须len(s2)达到5才会停止
3.2
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}')

3.3
a=[] b=[] m=0 n=0 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']] for i in range(0,len(temperatures)): a.append(temperatures[i][2]) min1=min(a) for i in a: m=m+int(i) averagea=(int((m/len(temperatures)))) for i in range(0,len(temperatures)): b.append(temperatures[i][3]) max1=max(b) for i in b: n=n+int(i) averageb=(int((n/len(temperatures)))) print('未来一周最低气温:'+min1+'℃') print('未来一周最高气温:'+max1+'℃') print('未来一周平均气温区间:'+str(averagea)+'℃'+'~'+str(averageb)+'℃')

3.4
import random print('猜猜2022年5月哪一天会是你的lucky day:-)') a=random.randint(1,31) i=1 n=input('你有三次机会,猜吧(1~31): ') n=int(n) while i<=3: if i==3: if int(n)==a: print('哇,猜中了:-)') break elif int(n)<a: print('猜早了,你的lucky day还没到呢') print('次数用光了') print('偷偷告诉你,5月你的lucky day是'+str(a)+'号. good luck:-)') break elif int(n)>a: print('猜晚了,你的lucky day已经过啦') print('次数用光了') print('偷偷告诉你,5月你的lucky day是'+str(a)+'号. good luck:-)') break elif i<3: if int(n)==a: print('哇,猜中了:-)') break elif int(n)<a: print('猜早了,你的lucky day还没到呢') n=input('再猜(1~31):') i=i+1 continue elif int(n)>a: print('猜晚了,你的lucky day已经过啦') n=input('再猜(1~31):') i=i+1 continue


3.5
x,n=eval(input('输入十进制整数x和要转换的进制n(2或8或16): ')) if n == 2: print('{}的{}进制是:{:b}'.format(x, n, x)) if n == 8: print('{}的{}进制是:{:o}'.format(x, n, x)) if n == 16: print('{}的{}进制是:{:X}'.format(x, n, x))

实验总结
1.能够更好地使用控制语句
2.组合数据类型应用掌握更好
浙公网安备 33010602011771号