首页 > 解决方案 > 显示错误答案的 Elif 语句

问题描述

我对python相当陌生,所以如果这是一个愚蠢的问题,请原谅。我的 elif 语句有问题。因此,例如,bedtimecalc 会打印出除 -18 或 18 之外的任何数字,但 python 会不断打印出 -18 或 18 的 elif 语句。我希望这是有道理的。我已经尝试过 elif 语句和常规 if 语句。我已经查过了,找不到答案,所以如果这是一个骗局,我再次道歉。另外,我确信一堆 if 语句不是解决这个问题的方法,但我不知道还能做什么。非常感谢。

def main():
at = want_awaketime()
hs = want_hoursofsleep()
bedtimecalc = (int(hs)-int(at))
print (bedtimecalc)
if bedtimecalc == 0:
 btf = "Midnight"
elif bedtimecalc == -1:
 btf = "1am"
elif bedtimecalc == -2:
 btf = "2am"
elif bedtimecalc == -3:
 btf = "3am"
elif bedtimecalc == -4:
 btf = "4am"
elif bedtimecalc == -5:
 btf = "5am"
elif bedtimecalc == -6:
 btf = "6am"
elif bedtimecalc == -7:
 btf = "7am"
elif bedtimecalc == -8:
 btf = "8am"
elif bedtimecalc == -9:
 btf = "9am"
elif bedtimecalc == -10:
 btf = "10am"
elif bedtimecalc == -11:
 btf = "11am"
elif bedtimecalc == 12:
 btf = "12pm"
elif bedtimecalc == 13:
 btf = "1pm"
elif bedtimecalc == 14:
 btf = "2pm"
elif bedtimecalc == 15:
 btf = "3pm"
elif bedtimecalc == 16:
 btf = "4pm"
elif bedtimecalc == 17:
 btf = "5pm"
elif bedtimecalc == 18 or -18:
 btf = "6pm"
elif bedtimecalc == 19:
 btf = "7pm"
elif bedtimecalc == 20 or -20:
 btf = "8pm"
elif bedtimecalc == 21:
 btf = "9pm"
elif bedtimecalc == 22:
 btf = "10pm"
elif bedtimecalc == 23:
 btf = "11pm"
print ("Go to bed at " + btf + ".")

输出

-20
Go to bed at 6pm.

标签: pythonpython-3.x

解决方案


推荐阅读