实验3

task1.py

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(s)

问题1random.randint(1,100)生成的随机整数范围是?能否取到100

1~100,能取到

问题2:利用list(range(5))生成的有序序列范围是?是否包括5利用list(range(1,5))生成的有序序列范围是?是否包括5

0~4,不包括5,1~4,不包括5

问题3:使用line8生成的集合s1len(s1)一定是5吗?

一定是5

问题4:使用line12-14生成的集合s2len(s2)一定是5吗?

一定是5

 

task2.py

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}')

 

task3.py

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']]
min_list=[]
max_list=[]
a=0
c=0
for i in temperatures:
    min_list.append(i[2])
    max_list.append(i[3])
for j in range(len(min_list)):
    a=a+int(min_list[j])
    b=a/len(min_list)
for k in range(len(max_list)):
    c=c+int(max_list[k])
    d=c/len(max_list)
print('未来一周最低气温:',min(min_list),'')
print('未来一周最高气温:',max(max_list),'')
print('未来一周平均气温区间:',int(b),'℃~',int(d),'')

 

task4.py

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

 

task5.py

num, n = eval(input("输入十进制整数x和要转换的进制n(2或8或16):"))
a = []
b = num//n
a.append(num%n)
while b :
    a.append(b%n)
    b = b//n

print(f"{num}的{n}进制是:", end = '')
for i in a[::-1]:
    if 10<=i<=16:
        print(chr(55+i), end = '')
    else :
        print(i, end = '')

 

posted @ 2022-04-25 23:09  h_ln  阅读(40)  评论(4编辑  收藏  举报