當 age = 8 時,結果正確,但 age = 20 時,為什么沒有打印出 adult?
age = 8
if age >= 6:
? ?print 'teenager'
elif age >= 18:
? ?print 'adult'
else:
? ?print 'kid'
當 age = 8 時,結果正確,但 age = 20 時,為什么沒有打印出 adult?
如果要修復,應該如何修復?
age = 8
if age >= 6:
? ?print 'teenager'
elif age >= 18:
? ?print 'adult'
else:
? ?print 'kid'
當 age = 8 時,結果正確,但 age = 20 時,為什么沒有打印出 adult?
如果要修復,應該如何修復?
2018-01-11
舉報
2018-03-19
2018-01-25
分支結構進入一層就不會進入其他層了,我覺得修改判斷條件的順序邏輯上讓我很不舒服,所以把條件修改的更加嚴謹了,可以得到正確結果。
改正代碼:
age = 20?
if age >= 6 and age < 18:
? ? print 'tennger'
elif age >= 18:
? ? print 'adult'
else:
? ? print 'kid'
2018-01-11
特別注意:?這一系列條件判斷會從上到下依次判斷,如果某個判斷為 True,執行完對應的代碼塊,后面的條件判斷就直接忽略,不再執行了。
所以在:
這個代碼里先執行第一個判斷,age>=6 因為age=20,這里判斷是true,直接打印'teenager'。而不再執行后面的判斷。
所以要修復這個問題,就應該使判斷條件較大的優先執行,更改后就是:
這樣,執行第一個判斷age>=18,這里age=20,判斷為true。打印'adult'。不執行后續語句。
如果,age=8,那么執行第一個判斷age>=18,? 就不符合,然后執行下一個age>=6,判斷為true。打印'teenager'不執行后續語句
能理解嗎。
2018-01-11
if ,elif,else 3個分支,執行任何一個都會程序執行結束。進入第一if條件后,雖然第二個elif條件也滿足,但是只會進入第一個。要如下改才可以:
age = 8
if age >= 18:
? ?print 'adult'
elif age >= 6:
? ?print 'teenager'
else:
? ?print 'kid'
注意:if ,elif,else 條件一定要嚴密。
2018-01-11
age = 8
if age >= 18:
? ?print 'adult'
elif?age >= 6:
? ?print 'teenager'
else:
? ?print 'kid'
這樣應該可以了
2018-01-11
因為這里是一個條件判斷 if,elif,else這里有3個分支,和其他編程語言一樣,進入了一個分支,肯定就不會進入第二個分支了,對應于你這里的代碼,執行流程就是,首先進來判斷8 >= 6,結果為True,進入分支打印teenager,然后程序就結束了,如果你每個條件都判斷,那么你就都寫if來判斷,而不是elif