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

1.实验任务1

import random
print('用列表存储随机整数: ')
ls = [random.randint(1,100) for i in range(5)]
print(ls)
print('\n用集合存储随机整数: ')
s2=set()
while (len(s2)<5):
    s2.add(random.randint(1,100))
print(s2)

问题答案:

1.范围是1~100,包括1和100.

2. 0~4,不包括5;1~4,不包括5.

3.不一定,如果随机数重复,len(s1)<5

4.一定是5

2.实验任务2

datas={'2049777001':['篮球','羽毛球','美食','漫画'],
       '2049777002':['音乐','旅行'],
       '2049777003':['马拉松','健身','游戏'],
       '2049777004':[],
       '2049777005':['足球','阅读'],
       '2049777006':['发呆','闲逛'],
       '2049777007':[],
       '2049777008':['书法','电影'],
       '2049777009':['音乐','阅读','电影','漫画'],
       '2049777010':['数学','推理','音乐','旅行']
       }
L=list(datas.values())
s=set()
d={}
for l in L:
    for i in l:
        s.add(i)
for i in s:
    si=0
    for j in L:
        for k in j:
            if k==i:
                si+=1
    d.setdefault(i,si)
d1=zip(d.values(),d.keys())
d2=sorted(d1,reverse=True)
for i in d2:
    print(f'{i[1]}:{i[0]}')

3.实验任务3

temperature=[['2022-04-18','星期一','10','22'],
             ['2022-04-19','星期二','10','22'],
             ['2022-04-20','星期三','12','25'],
             ['2022-04-21','星期四','13','28'],
             ['2022-01-22','星期五','16','31'],
             ['2022-04-23','星期六','19','31'],
             ['2022-04-24','星期日','19','27']]
d,g,sd,sg=[],[],0,0
for i in temperature:
    d.append(i[2])
    g.append(i[3])
for i in range(7):
    sd+=int(d[i])
    sg+=int(g[i])
ad=sd//7
ag=sg//7
print(f'未来一周最低气温:{min(d)}℃')
print(f'未来一周最高气温:{max(g)}℃')
print(f'未来一周平均气温区间:{ad}℃~{ag}℃')

4.实验任务4

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

5.实验任务5

x,n=input('输入十进制整数x和要转换的进制n(2或8或16): ').split(',')
j,k=int(x),int(n)
l,l2,m=[],[],[]
l1=['10','11','12','13','14','15']
for i in range(ord('A'),ord('F')+1):
    l2.append(chr(i))
from math import *
while True:
    l.append(str(j%k))
    j=floor(j/k)
    if j==0:
        break
if k==2 or k==8:
    s=''.join(l)
    print(f'{x}的{n}进制是:{s[::-1]}')
else:
    for i in l:
        if i in l1:
            m.append(l2[l1.index(i)])
        else:
            m.append(i)
    s=''.join(m)
    print(f'{x}的16进制是:{s[::-1]}')

实验总结:

1.实验5用的是pycharm(之前是pyscripter),熟悉了pycharm的使用

2.复习了各种数据类型之间的相互转换

3. 学会使用了zip()函数,复习了输出'A'~'Z'的方法

4.加深对循环结构、分支结构的熟练度

  

 

  

  

  

  

posted on 2022-04-22 19:55  马可菠萝堡  阅读(52)  评论(1编辑  收藏  举报

导航