实验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)

 

 

 问题一:random.randint(1,100)生成1到100的随机整数,包括1和100

          list(range(5))生成范围0到4,不包括5

二 list(range(1,5))生成范围1到4,不包括5

三 一定是5

四 一定是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

a=[]
b=[]
m=0
n=0
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']]
for i in range(0,len(temperatures)):
    a.append(temperatures[i][2])
min1=min(a)
for i in a:
    m=m+int(i)
averagea=(int((m/len(temperatures))))

for i in range(0,len(temperatures)):
    b.append(temperatures[i][3])
max1=max(b)
for i in b:
    n=n+int(i)
averageb=(int((n/len(temperatures))))
print('未来一周最低气温:'+min1+'')
print('未来一周最高气温:'+max1+'')
print('未来一周平均气温区间:'+str(averagea)+''+'~'+str(averageb)+'')

 

 

task4

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

 

 

task5

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

 

 

 

 

 

 

 

 

实验总结:

1.明白了范围的区间问题。

2.代码能理解,但应该还不完全能掌握运用。

3.了解了控制语句。

 

posted @ 2022-04-26 10:49  周俊西  阅读(25)  评论(0编辑  收藏  举报