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

task1

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) 生成的随机整数范围是:【1,100】能否取到100?(是)

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

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

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

task2

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

task3

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']]
b=[]
s=[]
for i in temperatures:
    b.append(int(i[3]))
    s.append(int(i[2]))
zuidi=min(s)
zuigao=max(b)
sum1=0
sum2=0
for j in b:
     sum1+=j
for k in s:
     sum2+=k
pjd=int(sum2/len(s))
pjg=int(sum1/len(b))
print("未来一周最低气温:{}℃".format(zuidi))
print("未来一周最高气温:{}℃".format(zuigao))
print("未来一周平均气温区间:{}℃~{}℃".format(pjd,pjg))

task4

import random
l=random.randint(1,31)
print("猜猜2022年5月哪一天会是你的lucky day:-)")
a=int(input("你有三次机会,猜吧(1~31):"))
if a==l:
     print("哇,猜中啦:-)")
else:
     if a<l:
         print("猜早啦,你的lucky day还没到呢")
     if a>l:
         print("猜晚啦,你的lucky day已经过啦")
     f=0
     while(f<2):
         b=int(input("再猜(1~31):"))
         if b==l:
             print("哇,猜中啦:-)")
             f=300
         else:
             if b>l:
                 print("猜晚啦,你的lucky day已经过啦")
                 f+=1
             if b<l:
                 print("猜早啦,你的lucky day还没到呢")
                 f+=1
     if f==2:
         print("次数用光啦")
         print("偷偷告诉你,5月你的lucky day是{}号.good luck:-)".format(l))

task5

x,n=eval(input("输入十进制整数x和要转换的进制n(2或8或16):"))
a=[]
c=x
while(c!=0):
     if c%n<10:
         f=str(c%n)
     else:
         f=chr(ord("A")+c%n%10)
     a.append(f)
     c=int((c-c%n)/n)
b="".join(a)
b1=b[::-1]
print("{}的{}进制是:{}".format(x,n,b1))

 

posted @ 2022-04-26 21:05  一壶花茶  阅读(27)  评论(1编辑  收藏  举报