实验三
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:
random.randint(1,100)生成的随机整数范围是1-100,能取到100。
问题2:
list(range(5))生成的有序序列范围是0-4,不包括5。
list(range(1,5))生成的有序序列范围是1-4,不包括5。
问题3:
使用line8生成的集合s1,len(s1)一定是5。
问题a:
使用line12-14生成的集合s2,len(s2)一定是5。
task 2
datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'],
'2049777002': ['音乐', '旅行'],
'2049777003': ['马拉松', '健身', '游戏'],
'2049777004': [],
'2049777005': ['足球', '阅读'],
'2049777006': ['发呆', '闲逛'],
'2049777007': [],
'2049777008': ['书法', '电影'],
'2049777009': ['音乐', '阅读', '电影', '漫画'],
'2049777010': ['数学', '推理', '音乐', '旅行']
}
dict={}
for k in datas.values():
for i in k:
dict[i] = dict.get(i, 0) + 1
a=sorted(dict.items(),key=lambda x:x[1],reverse=True)
for key,value in a:
print(f'{key}:{value}')

task 3
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']] a=[i[2] for i in temperatures] b=[i[3] for i in temperatures] max=max(b) min=min(a) sum1=0 sum2=0 for c in a: sum1=sum1+int(c) for d in b: sum2=sum2+int(d) a1=int(sum1)//7 a2=int(sum2)//7 print('未来一周最低气温:{}℃'.format(min)) print('未来一周最高气温:{}℃'.format(max)) print('未来一周平均气温区间: {}°C ~ {}°C'.format(a1,a2))

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

task5
x=int(input('输入十进制整数:'))
n=int(input('要转换的进制:'))
a=[]
if n==2 or n==8:
while x//n!=0:
a.insert(0,x%n)
x=x//n
else:
a.insert(0,x%n)
elif n==16:
b=int(x%n)
while x//n!=0:
if b==10:
b='A'
elif b==11:
b='B'
elif b==12:
b='C'
elif b==13:
b='D'
elif b==14:
b='E'
elif b==15:
b='F'
elif 0<=b<=9:
b=str(x%n)
a.insert(0,b)
x=x//n
else:
a.insert(0,x%n)
for i in a:
print(i,end='')

实验总结:
通过本次实验训练,我对循环语句使用更加熟练,对于列表里元素的调取也更熟练了。
浙公网安备 33010602011771号