iT邦幫忙

0

【開心碼農養成記】Python初新者練習手札-串列、元組和字典練習題小搞搞

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230830/20159965sRrDw564W1.png

前情提要:

颱風都轉彎不來的時刻,當然是繼續開心碼農學習日常了!

這次還是做基本練習中的串列、元組和字典方面的練習,但課本有給學習評量的題目,但是卻沒給解答啊....../images/emoticon/emoticon06.gif

所以只能自立自強,來一場作為新手特權的胡搞瞎搞吧.../images/emoticon/emoticon01.gif


學習評量的題目:

這次一共有兩個,分別是:

1.使用串列['tom', 'mary', 'joe']建立元組,然後對應成績元組,項目是85, 76和58,在顯示學生、成績總分和平均。
並讓使用者輸入學生姓名查詢成績。

2.將題目1.改用字典建立學習評量,將CH練習4.中的姓名為鍵,分數為值


既然得到題目了,那就進入小搞搞環節吧!

實作:

題目1.

lst1 = ['tom', 'mary', 'joe']
t1 = tuple(lst1)
t2 =(85, 76, 58)
count1= str(input('請輸入姓名:'))
for i in t1:
    if i == count1:
       s = t1.index(count1)
       #print(t1[s])
       print(t1[s], '的分數是: %d 分' % (t2[s]))

說明:
題目1.相對比較簡單,就是設定變數後把題目要求的值給塞進去。

雖然應該有更快的一行完成(?),但目前繼續回去打木人的我還不會....../images/emoticon/emoticon02.gif

然後算出輸入的姓名在元組中的索引值,並當成參數呼叫回來。

執行結果:
https://ithelp.ithome.com.tw/upload/images/20230830/20159965sGt8tRGtDG.png


至於題目2.,雖然有解出來但感覺似乎哪裡怪怪的,總覺得應該有更好的解法...吧(?)/images/emoticon/emoticon17.gif

lst1 = ['tom', 'mary', 'joe']
t1 = tuple(lst1)
t2 =(85, 76, 58)
s2 =len(t1)
d1={t1[j]:t2[j] for j in range(s2)}
print(d1)

說明:

基本上的程式碼是和第一題大致一樣,主要差別在下方加入字典d1的部分。

這邊是先設一個s2變數取得t1的長度,主要的目的是為了取得寫入字典時的迴圈執行的次數。

j 基本就是 i, 主要是取得索引值,不過因為再寫的時候是直接沿用第一題的程式碼,所以就改成j了!

執行結果:
https://ithelp.ithome.com.tw/upload/images/20230830/20159965W9ubTODvVH.png


題外話:

其實題目1有被我自己修改過。

原本課本上的是要輸入學號來找學生姓名和成績,但題目上並沒有給學號啊....../images/emoticon/emoticon04.gif

雖然自己生也不是問題,但我選擇無視.../images/emoticon/emoticon48.gif


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言