实验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,包括1和100

问题2:[0,1,2,3,4]不包括5
[1,2,3,4],不包括5

问题3:是的

问题4:是的

 

#实验任务二
datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'],
         '2049777002': ['音乐', '旅行'],
         '2049777003': ['马拉松', '健身', '游戏'],
         '2049777004': [],
         '2049777005': ['足球', '阅读'],
         '2049777006': ['发呆', '闲逛'],
         '2049777007': [],
         '2049777008': ['书法', '电影'],
         '2049777009': ['音乐', '阅读', '电影', '漫画'],
         '2049777010': ['数学', '推理', '音乐', '旅行']}
d1 = set()
a1 = []
for x in datas.values():
    for i in x:
        d1.add(i)
for y in d1:
    a=0
    for x in datas.values():
        for i in x:
            if i == y:
                a += 1
    a1.append(a)
d2 = dict(zip(d1,a1))
l1 = list(d2.items())
l2 = sorted(l1, key=lambda x: x[1], reverse=True)
for k, v in l2:
    print(f'{k}:{v}')

#实验任务三
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 x in temperatures:
    a.append(eval(x[2]))
    b.append(eval(x[3]))
print(f'''未来一周最低气温:{min(a)}℃
未来一周最高气温:{max(b)}℃
未来一周平均气温区间:{int(sum(a)/7)}℃~{int(sum(b)/7)}℃''')

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

#实验任务五
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))

 

posted @ 2022-04-20 18:37  邵佳佳202183360014  阅读(45)  评论(2编辑  收藏  举报