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

实验任务一:

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之间的整数,能取到100。

问题2: list(range(5))范围是0到5,不包括5;list(range(1,5))范围是1到5,不包括5。

问题3: 不

问题4:嗯

 

实验任务二:

datas={'2049777001':['篮球','羽毛球','美食','漫画'],'2049777002':['音乐','旅行'],'2049777003':['马拉松','健身','游戏'],'2049777004':[],'2049777005':['足球','阅读'],'2049777006':['发呆','闲逛'],'2049777007':[],'2049777008':['书法','电影'],'2049777009':['音乐','阅读','电影','漫画'],'2049777010':['数学','推理','音乐','旅行']}
list1=list(datas.values())
list2=[j for item in list1 for j in item]
result={}
for i in list2:
if i not in result:
result[i]=1
else:
result[i]+=1
for k in sorted(result,key=result.__getitem__,reverse=True):
print(k,result[k])

 

运行结果:

 

 

实验任务三:

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']]
list1=[]
for i in range(0,7):
list1.append(temperatures[i][2])
list2=[]
for j in range(0,7):
list2.append(temperatures[j][3])
a=min(list1)
b=max(list2)
sum1=0
sum2=0
for m in list1:
sum1+=eval(m)
for n in list2:
sum2+=eval(n)
minimum=sum1/len(list1)
maximum=sum2/len(list2)
print('未来一周最低气温:{}℃'.format(a))
print('未来一周最高气温:{}℃'.format(b))
print('未来一周平均气温区间:{}℃~{}℃'.format(int(minimum),int(maximum)))

运行结果:

 

 

实验任务四:

import random
num=random.randint(1,31)
print('猜猜2022年5月哪一天回事你的lucky day:-)')
s=eval(input('你有三次机会,猜吧(1~31):'))
if s!=num:
if s>num:
print('猜晚啦,你的lucky day已经过啦')
i=1
while i<=2:
s=eval(input('再猜(1~31):'))
if s>num:
print('猜晚啦,你的lucky day已经过啦')
i=i+1
elif s<num:
print('猜早啦,你的lucky day还没到呢')
i=i+1
elif s==sum:
print('哇,猜中啦:-)')
break
print('次数用光啦')
print('偷偷告诉你,5月你的lucky day是{}号。good luck'.format(num))
elif s<num:
print('猜早啦,你的lucky day还没到呢')
i =1
while i <= 2:
s = eval(input('再猜(1~31):'))
if s > num:
print('猜晚啦,你的lucky day已经过啦')
i = i + 1
elif s < num:
print('猜早啦,你的lucky day还没到呢')
i = i + 1
elif s == sum:
print('哇,猜中啦:-)')
break
print('次数用光啦')
print('偷偷告诉你,5月你的lucky day是{}号。good luck'.format(num))
else:
print('哇,猜中了:-)')

运行结果:

 

 

 

实验任务五:

s=input('输入十进制整数x和要转换的进制n(2或8或16):')
t=['A','B','C','D','E','F']
for i in range(len(s)):
if s[i]==',':
k=i
break
ans=''
x=int(s[0:i])
n=int(s[i+1:])
m=x
while x//n!=0:
if x%n<10:
ans=str(x%n)+ans
else:

i=x%n-10
ans=t[i]+ans
x=x//n
ans=str(x)+ans
print(f'{m}的{n}进制是:{ans}')

实验结果:

 

posted @ 2022-04-23 22:12  希木子  阅读(17)  评论(3编辑  收藏  举报