python - 显示错误答案的 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.
解决方案
推荐阅读
- amazon-web-services - AWS Cloudfront 黑名单,通过 VPN 访问
- semantic-web - 寻找替代分类法(语义标记)
- c# - 如何使用 Action 调用泛型方法
在 C# 中使用反射的参数 - python - 未应用过滤器时如何使用 django-filters 保持页面分页?
- postgresql - Postgres:如何按带时区的字符串日期排序?
- python-3.x - 无法将 ICMP 响应写入 excel
- python - 在 Python 中尝试 RCON 连接 Rust(游戏)
- c++ - 在 SQLITE 中正确查询时出错,为什么?
- git - 如何拒绝推送引用了尚未使用 Azure DevOps 推送的子模块的超级项目
- cplex - 保存并重用模型 PULP CPLEX