[問題] 關於python函式的問題

看板Python作者 (金星人)時間8年前 (2017/08/17 20:42), 編輯推噓3(307)
留言10則, 4人參與, 最新討論串1/2 (看更多)
目前在自學python 再看一下練習的遇到一個問題 如圖 http://i.imgur.com/K5geOY4.jpg
然後這是他的提示 http://i.imgur.com/8Piga07.jpg
my_dic = {'Tom' : 100, 'Mary' : 95, 'Gary' : 88, 'Tim' : 80, 'Eva' : 95} def check_dic(name): for n in my_dic: if n == name: print (name + "'s score is", my_dic[name]) break else: print("班上沒有這位同學喔") check_dic("Gary") 我從他的提示下手,但是遇到一個問題就是 如果是搜尋Gary的話,print會是 班上沒有這位同學喔 班上沒有這位同學喔 Gary's score is 88 他是一行找print出來 再一行找print出來 所以說輸入沒有再my_dic裡面的資料的話 等於會一次print五次 "班上沒有這位同學喔" 所以想請教一下,如果要修改成像他這樣一次就找出需要的值的話 應該怎麼修改才好 感謝各位大大<( _ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.142.169.113 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1502973739.A.2DC.html

08/17 20:54, , 1F
else縮到for那行
08/17 20:54, 1F

08/17 20:54, , 2F
另外建議字典簡稱用dict
08/17 20:54, 2F

08/17 20:57, , 3F
啊!!不小心打錯,不好意思 問題已解決!!
08/17 20:57, 3F

08/17 20:57, , 4F
沒想到是因為縮排的關係...orz
08/17 20:57, 4F

08/17 20:58, , 5F
兩者就是差在一個break會再重新跑一次迴圈,另外一個
08/17 20:58, 5F

08/17 20:58, , 6F
就是直接進行到下一個階段else嗎
08/17 20:58, 6F

08/18 09:45, , 7F
if name in my_dict感覺更好一點吧
08/18 09:45, 7F

08/18 12:15, , 8F
同樓上 用in check key是否存在就好 為啥要做for呀?
08/18 12:15, 8F

08/18 13:32, , 9F
08/18 13:32, 9F

08/18 16:58, , 10F
用了FOR迴圈感覺有點多此一舉得感覺 感謝各位大大
08/18 16:58, 10F
文章代碼(AID): #1PbOyhBS (Python)
文章代碼(AID): #1PbOyhBS (Python)