控制语句与组合数据类型综合应用编程

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
print('猜猜2022年5月哪一天会是你的lucky day:-)')
lucky_day = random.randint(1,31)
num = int(input('你有三次机会,猜吧(1~31):'))
count = 0
while True:
    if num > lucky_day:
        print(f'猜晚啦,你的lucky day已经过啦')
        count += 1
        if count == 3:
            print(f'次数用光了\n偷偷告诉你,5月你的lucky day是{lucky_day}号。good luck:-)')
            break
        num = int(input('再猜(1~31):'))
    elif num < lucky_day:
        print(f'猜早啦,你的lucky day还没到呢')
        count += 1
        if count == 3:
            print(f'次数用光了\n偷偷告诉你,5月你的lucky day是{lucky_day}号。good luck:-)')
            break
        num = int(input('再猜(1~31):'))
    else:
        print('哇,猜对啦:-)')
        break

  

 

 

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-27 12:01  乐长森  阅读(11)  评论(3编辑  收藏  举报