1. 程式人生 > 其它 >實驗3 控制語句與組合資料型別綜合應用

實驗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.加深對迴圈結構、分支結構的熟練度