前情提要:
颱風都轉彎不來的時刻,當然是繼續開心碼農學習日常了!
這次還是做基本練習中的串列、元組和字典方面的練習,但課本有給學習評量的題目,但是卻沒給解答啊......
所以只能自立自強,來一場作為新手特權的胡搞瞎搞吧...
學習評量的題目:
這次一共有兩個,分別是:
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.相對比較簡單,就是設定變數後把題目要求的值給塞進去。
雖然應該有更快的一行完成(?),但目前繼續回去打木人的我還不會......
然後算出輸入的姓名在元組中的索引值,並當成參數呼叫回來。
執行結果:
至於題目2.,雖然有解出來但感覺似乎哪裡怪怪的,總覺得應該有更好的解法...吧(?)
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了!
執行結果:
題外話:
其實題目1有被我自己修改過。
原本課本上的是要輸入學號來找學生姓名和成績,但題目上並沒有給學號啊......
雖然自己生也不是問題,但我選擇無視...