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

1. 实验任务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: random.randint(1,100) 生成的随机整数范围是?能否取到100?

答:1<=x<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生成的集合s1,len(s1)一定是5吗?回答并说明你的理由。

答:使用line8生成的集合s1,len(s1)不一定是5,字典去掉重复元素。

 

问题4:使用line12-14生成的集合s2,len(s2)一定是5吗?回答并说明你的理由。

答:len(s2)一定是5,while的循环条件是len(s2)达到5才会。

2. 实验任务2

datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'],
'2049777002': ['音乐', '旅行'],
'2049777003': ['马拉松', '健身', '游戏'],
'2049777004': [],
'2049777005': ['足球', '阅读'],
'2049777006': ['发呆', '闲逛'],
'2049777007': [],
'2049777008': ['书法', '电影'],
'2049777009': ['音乐', '阅读', '电影', '漫画'],
'2049777010': ['数学', '推理', '音乐', '旅行']
}
a = list(datas.values())
b=[]
for m in a :
for x in m:
b.append(x)
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

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=[]
b=[]
for i in range(len(temperatures)):
a.append(int(temperatures[i][3]))
b.append(int(temperatures[i][2]))
h=max(a)
l=min(b)
m=sum(a)//7
n=sum(b)//7
print(f'未来一周最低气温:{l}℃\n未来一周最高气温:{h}℃\n未来一周平均气温区间{n}℃-{m}℃')

4. 实验任务4

import random as r
def k(x):
    if x>a:return "猜晚啦,你的lucky day已经过啦\n再猜(1~31):"
    elif x<a:return "猜早啦,你的lucky day还没到呢\n再猜(1~31):"
    else:return "哇,猜中了:-)"
a=r.randint(1,32)
b=int(input("猜猜2022年5月那一天会是你的lucky day:-)\n你有三次机会,猜吧(1~31):"))
i=0
m="哇,猜中了:-)"
while  i<2:
    b=int(input(k(b)))
    m=k(b)
    i+=1
    if m=="哇,猜中了:-)":print(m)
    if i ==2: print(f"次数用光了\n偷偷告诉你,5月你的lucky day是{a}号,good luck:—)")

5. 实验任务5

x,n=eval(input('输入十进制整数x和要转换的进制n:'))
y=0
list=[]
dict={'10':'A','11':'B','12':'C','13':'D','14':'E','15':'F'}
while x//n!=0:
    y=x%n
    x=x//n
    list.append(str(y))
list.append(str(x))
list.reverse()
if n==16:
    list=[dict[i] if i in dict else i for i in list]
print(''.join(list))

 

posted @ 2022-04-24 00:19  何处寻清欢  阅读(25)  评论(2编辑  收藏  举报