這是我作為程序員的第一個問題,我正在自學 Python,希望您能幫助我弄清楚為什么我對這個問題的回答是錯誤的。我知道解決方案更簡單,語法上可能更正確,但我想知道為什么我的代碼根本不起作用。我正在處理的問題:鏈接: https: //codingbat.com/prob/p166884粘貼在這里的問題:我們有一只大聲說話的鸚鵡。“小時”參數(shù)是當前小時時間,范圍為 0..23。如果鸚鵡正在說話并且時間是 7 點之前或 20 點之后,我們就有麻煩了。如果我們有麻煩,則返回 True。parrot_trouble(True, 6) → True parrot_trouble(True, 7) → False parrot_trouble(False, 6) → False我的答案:def parrot_trouble(talking, hour): if talking == True and hour < 7 == True or hour > 20 == True: return(True)結果:Expected Run parrot_trouble(True, 6) → True None X parrot_trouble(True, 7) → False None X parrot_trouble(False, 6) → False None X parrot_trouble(True, 21) → True None X parrot_trouble(False, 21) → False None X parrot_trouble(False, 20) → False None X parrot_trouble(True, 23) → True None X parrot_trouble(False, 23) → False None X parrot_trouble(True, 20) → False None X parrot_trouble(False, 12) → False None X 解決方案:def parrot_trouble(talking, hour): return (talking and (hour < 7 or hour > 20)) Need extra parenthesis around the or clause since and binds more tightly than or. and is like arithmetic *, or is like arithmetic +我在小時布爾表達式周圍嘗試了括號,但這也不起作用:def parrot_trouble(talking, hour): if talking == True and (hour < 7 == True or hour > 20 == True): return(True)我不確定我的想法哪里出了問題。我感謝您的幫助。
2 回答

慕雪6442864
TA貢獻1812條經(jīng)驗 獲得超5個贊
這里的問題是您使用此語句的語法
(hour < 7 == True or hour > 20 == True)
當你已經(jīng)聲明 hour < 7 時,你不需要放置 '== true'。
只需將其更改為
(hour < 7 or hour > 20)

楊__羊羊
TA貢獻1943條經(jīng)驗 獲得超7個贊
def parrot_trouble(talking, hour):
if talking == True and (hour<7 or hour>20):
return True
else:
return False
添加回答
舉報
0/150
提交
取消