python中的用户输入布尔值

新手上路,请多包涵

我正在尝试让用户输入他们是否喜欢辛辣食物并且输出应该是布尔值但我似乎没有使用下面的代码获得输出:

 def likes_spicyfood():
    spicyfood = bool(input("Do you like spicy food? True or False?"))
    if spicyfood == ("True"):
        print("True")
    if spicyfood == ("False"):
        print("False")
        return(likes_spicyfood)

原文由 user5556453 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 431
1 个回答

尝试将您的输入转换为 bool 不会那样工作。 Python 考虑 任何非空字符串 True 。这样做 bool(input()) input() != '' 相同。即使输入不是 "True" ,两者都返回 true。只需比较直接给字符串的输入 "True"False"

 def likes_spicyfood():
    spicyfood = input("Do you like spicy food? True or False?")
    if spicyfood == "True":
        return True
    if spicyfood == "False":
        return False

请注意,如果输入不是 "True"False" ,则上述代码将失败(通过返回 None 而不是布尔值)如果原始输入无效(即不是 "True"False" ),请考虑返回默认值或 重新询问用户输入

原文由 Christian Dean 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题