User input boolean in python
我试图让用户输入他们是否喜欢辛辣的食物,输出应该是一个布尔值,但我似乎没有得到下面代码的输出:
1 2 3 4 5 6 7 | 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) |
尝试将您的输入转换为
1 2 3 4 5 6 | def likes_spicyfood(): spicyfood = input("Do you like spicy food? True or False?") if spicyfood =="True": return True if spicyfood =="False": return False |
注意,如果输入不是
如果您确定输入正确,可以执行以下操作:
1 2 3 | def likes_spicyfood(): spicyfood = input("Do you like spicy food? True or False?") return spicyfood.title() =="True" |
在您的使用中,将
为了解决你的问题,必须做一些改变。首先,您的代码示例甚至不调用您询问用户是否喜欢辛辣食物的函数,所以在代码的最底层调用它。埃多克斯1〔18〕
第二件事你必须改变的是,你必须简单地使用用户类型
1 2 3 4 5 6 7 8 9 | def likes_spicyfood(): spicyfood = input("Do you like spicy food? True or False?") if spicyfood =="True": print("The user likes spicy food!") if spicyfood =="False": print("The user hates spicy food!") return likes_spicyfood likes_spicyfood() |
号
您还将看到我返回了一些多余的括号:当将输入值与
试试这个。在0和1中要求答案,然后将其转换为布尔值。就像我在下面的例子中所做的那样
1 2 3 | isTrue = True while isTrue: isTrue = bool(int(input("Continue? 1 for yes, 0 for no:"))) |
不要将输入转换为bool。以后再做一个检查它是真是假的条件
像这样:)
1 2 3 4 5 6 7 8 9 | def likes_spicyfood(): spicyfood = input("Do you like spicy food? True or False?") while spicyfood!="True" or"False": spicyfood=input("Do you like spicy food? True or False?") if spicyfood == ("True"): print("True") if spicyfood == ("False"): print("False") return(likes_spicyfood) |
。