实验3 控制语句与组合数据类型综合应用
1.实验任务1
import random
print('用列表存储随机整数: ')
ls = [random.randint(1,100) for i in range(5)]
print(ls)
print('\n用集合存储随机整数: ')
s2=set()
while (len(s2)<5):
s2.add(random.randint(1,100))
print(s2)

问题答案:
1.范围是1~100,包括1和100.
2. 0~4,不包括5;1~4,不包括5.
3.不一定,如果随机数重复,len(s1)<5
4.一定是5
2.实验任务2
datas={'2049777001':['篮球','羽毛球','美食','漫画'],
'2049777002':['音乐','旅行'],
'2049777003':['马拉松','健身','游戏'],
'2049777004':[],
'2049777005':['足球','阅读'],
'2049777006':['发呆','闲逛'],
'2049777007':[],
'2049777008':['书法','电影'],
'2049777009':['音乐','阅读','电影','漫画'],
'2049777010':['数学','推理','音乐','旅行']
}
L=list(datas.values())
s=set()
d={}
for l in L:
for i in l:
s.add(i)
for i in s:
si=0
for j in L:
for k in j:
if k==i:
si+=1
d.setdefault(i,si)
d1=zip(d.values(),d.keys())
d2=sorted(d1,reverse=True)
for i in d2:
print(f'{i[1]}:{i[0]}')

3.实验任务3
temperature=[['2022-04-18','星期一','10','22'],
['2022-04-19','星期二','10','22'],
['2022-04-20','星期三','12','25'],
['2022-04-21','星期四','13','28'],
['2022-01-22','星期五','16','31'],
['2022-04-23','星期六','19','31'],
['2022-04-24','星期日','19','27']]
d,g,sd,sg=[],[],0,0
for i in temperature:
d.append(i[2])
g.append(i[3])
for i in range(7):
sd+=int(d[i])
sg+=int(g[i])
ad=sd//7
ag=sg//7
print(f'未来一周最低气温:{min(d)}℃')
print(f'未来一周最高气温:{max(g)}℃')
print(f'未来一周平均气温区间:{ad}℃~{ag}℃')

4.实验任务4
d=randint(1,31)
print('猜猜2022年5月哪一天会是你的lucky day:-)')
s1=int(input('你有三次机会,猜吧(1~31): '))
s2,s3='',''
if s1>d:
print('猜晚啦,你的lucky day已经过啦')
s2=int(input('再猜(1~31): '))
elif s1<d:
print('猜早啦,你的lucky day还没到呢')
s2=int(input('再猜(1~31): '))
else:
print('哇,猜中了:-)')
if s2>d:
print('猜晚啦,你的lucky day已经过啦')
s3=int(input('再猜(1~31): '))
elif s2<d:
print('猜早啦,你的lucky day还没到呢')
s3=int(input('再猜(1~31): '))
else:
print('哇,猜中了:-)')
if s3==d:
print('哇,猜中了:-)')
else:
print('次数用光啦.')
print(f'偷偷告诉你,5月你的lucky day是{d}号. good luck:-)')

5.实验任务5
x,n=input('输入十进制整数x和要转换的进制n(2或8或16): ').split(',')
j,k=int(x),int(n)
l,l2,m=[],[],[]
l1=['10','11','12','13','14','15']
for i in range(ord('A'),ord('F')+1):
l2.append(chr(i))
from math import *
while True:
l.append(str(j%k))
j=floor(j/k)
if j==0:
break
if k==2 or k==8:
s=''.join(l)
print(f'{x}的{n}进制是:{s[::-1]}')
else:
for i in l:
if i in l1:
m.append(l2[l1.index(i)])
else:
m.append(i)
s=''.join(m)
print(f'{x}的16进制是:{s[::-1]}')



实验总结:
1.实验5用的是pycharm(之前是pyscripter),熟悉了pycharm的使用
2.复习了各种数据类型之间的相互转换
3. 学会使用了zip()函数,复习了输出'A'~'Z'的方法
4.加深对循环结构、分支结构的熟练度
浙公网安备 33010602011771号