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

實驗3 控制語句和組合資料型別綜合應用

任務實驗1:

import random

print('用列表儲存隨機整數:')
Is=[random.randint(1,100) for i in range(5)]
print(Is)

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

任務實驗2:

 1 datas = {'2049777001': ['籃球', '羽毛球', '美食', '漫畫'],
 2          '2049777002': ['音樂', '旅行'],
 3          '2049777003': ['馬拉松', '健身', '遊戲'],
 4          '
2049777004': [], 5 '2049777005': ['足球', '閱讀'], 6 '2049777006': ['發呆', '閒逛'], 7 '2049777007': [], 8 '2049777008': ['書法', '電影'], 9 '2049777009': ['音樂', '閱讀', '電影', '漫畫'], 10 '2049777010': ['數學', '推理', '音樂', '旅行']} 11 list=list(datas.values()) 12 s=set() 13 list1=[]
14 list2=[] 15 for i in list: 16 for j in i: 17 list1.append(j) 18 s.add(j) 19 list2.append(str(list1).count(j)) 20 x=dict(zip(list1,list2)) 21 x1=[(v,k) for k,v in x.items()] 22 x2=sorted(x1,reverse=True) 23 for n in x2: 24 print(f'{n[1]}:{n[0]}')

任務實驗3:

 1 temperatures= [['2022-04-18', '星期一', '10', '22'],
 2                ['2022-04-19', '星期二', '10', '22'],
 3                ['2022-04-20', '星期三', '12', '25'],
 4                ['2022-04-21', '星期四', '13', '28'],
 5                ['2022-04-22', '星期五', '16', '31'],
 6                ['2022-04-23', '星期六', '19', '31'],
 7                ['2022-04-24', '星期日', '19', '27']]
 8 min_t=[]
 9 max_t=[]
10 for row in temperatures:
11     min_t.append(int(row[2]))
12     max_t.append(int(row[3]))
13 x=100
14 y=0
15 s1=0
16 s2=0
17 for i in min_t:
18     s1=s1+i
19     if i<x:
20         x=i
21 for j in max_t:
22     s2=s2+j
23     if j>y:
24         y=j
25 print('未來一週最低氣溫:',x,'°C')
26 print('未來一週最高氣溫:',y,'°C')
27 print('未來一週平均氣溫區間:',int(s1/7),'°C-',int(s2/7),'°C')

任務實驗4:

 1 import random
 2 x0=random.randint(1,31)
 3 print('猜猜2022年5月哪一天會是你的lucky day:-')
 4 x=int(input('你有三次機會,猜吧(1-31):'))
 5 if x==x0:
 6     print('哇,猜中了:-)')
 7 else:
 8     for i in range(2):
 9         if x>x0:
10             print('猜晚啦,你的lucky day已經過啦')
11             x=int(input('再猜(1-31):'))
12         elif x<x0:
13             print('猜早啦,你的lucky day還沒到呢')
14             x=int(input('再猜(1-31):'))
15         else:
16             print('哇,猜中了:-)')
17             break                                
18     else:
19         print('次數用光啦.偷偷告訴你,5月你的lucky day是',x0,'號.good luck:-')

 

任務實驗5:

 1 x,n=eval(input('輸入十進位制整數x和想要轉換的進位制n(2或8或16):'))
 2 list=[]
 3 list1=[]
 4 d1={10:'a',11:'b',12:'c',13:'d',14:'e',15:'f'}
 5 if n==2:
 6     a=x
 7     while a/n !=0:
 8         list.append(a%n)
 9         a=a//n
10     print(x,'',n,'進位制是:',end='')
11     for i in list:
12         list1.insert(0,i)
13     for j in list1:
14         print(j,end='')
15 elif n==8:
16     b=x
17     while b/n!=0:
18         list.append(b%n)
19         b=b//n
20     print(x,'',n,'進位制是:',end='')
21     for i in list:
22         list1.insert(0,i)
23     for j in list1:
24         print(j,end='')
25 elif n==16:
26     c=x
27     while c/n!=0:
28         if c%n<10:
29             list.append(c%n)
30         else:
31             list.append(d1[c%n])
32         c=c//n
33     print(x,'',n,'進位制是:',end='')
34     for i in list:
35         list1.insert(0,i)
36     for j in list1:
37         print(j,end='')