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

作者: venusmen (金星人)   2017-08-17 20:42:17
目前在自學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五次 "班上沒有這位同學喔"
所以想請教一下,如果要修改成像他這樣一次就找出需要的值的話
應該怎麼修改才好
感謝各位大大<( _ _)>
作者: venusmen (金星人)   2017-08-18 16:58:00
用了FOR迴圈感覺有點多此一舉得感覺 感謝各位大大
作者: tentenlee (天天)   2017-08-18 12:15:00
同樓上 用in check key是否存在就好 為啥要做for呀?https://repl.it/KPCJ/1 這樣
作者: flarehunter (Range)   2017-08-18 09:45:00
if name in my_dict感覺更好一點吧
作者: mikapauli (桜花)   2017-08-17 20:54:00
else縮到for那行另外建議字典簡稱用dict
作者: venusmen (金星人)   2017-08-17 20:57:00
啊!!不小心打錯,不好意思 問題已解決!!沒想到是因為縮排的關係...orz兩者就是差在一個break會再重新跑一次迴圈,另外一個就是直接進行到下一個階段else嗎

Links booklink

Contact Us: admin [ a t ] ucptt.com