看板 Python 關於我們 聯絡資訊
venusmen: 兩者就是差在一個break會再重新跑一次迴圈,另外一個 08/17 20:58
venusmen: 就是直接進行到下一個階段else嗎08/17 20:58
※ 引述《venusmen (金星人)》之銘言: : for n in my_dic: : if n == name: : print (name + "'s score is", my_dic[name]) : break : else: : print("班上沒有這位同學喔") 上面這段等同於 found = False for n in my_dic: if n == name: print('找到') found = True break if not found: print('沒有') 這是一個...算是 Python 的特殊語法? 但是幾乎所有的 best practice 都會叫你最好不要用 因為它的邏輯非常不直觀, 也很不常見 而帶來的效果也就是省你一個變數和兩行程式, 不值得 所以結論就是知道有就好, 不需要會用 哪天看到別人用的時候知道意思即可 然後順帶一提, 以這個 function 的例子, 用 early return 會更清楚 def find_print_person(name): for n in my_dic: if n == name: print('找到') return print('沒有') 這也幾乎在所有狀況下都是比 for-else 優美的解法 -- "問おう、貴方が私のマスターか?" -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.94.175 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1502977715.A.B91.html ※ 編輯: uranusjr (218.161.94.175), 08/17/2017 21:49:05
venusmen: 了解! 真的長知識了 感謝!! 08/18 17:01