我是Python的新手,并决定尝试一些基础知识。
为什么这总是评估为真?输入" False"因为UserInput应该评估为假?
true_or_false=input("Is it true or false?")
if true_or_false:
print("It's true")
if not true_or_false:
print("Well,it is not true")
使用最新的Python版本(3.smth)
答案 0 :(得分:1)
if
条件评估传递给它的对象的“真实性”:
if object:
...
与:
相同if bool(object):
...
您会看到任何长度大于0的字符串的真值为True
:
In [82]: bool('True')
Out[82]: True
In [83]: bool('False')
Out[83]: True
从本质上讲,您需要将if
更改为:
if string == 'True':
...
elif string == 'False':
在比较中使用字符串时,请使用==
运算符,除非您知道自己在做什么。
此外,了解其他一些python内置函数的真实性很有用:
In [84]: bool(None)
Out[84]: False
In [85]: bool({})
Out[85]: False
In [86]: bool([])
Out[86]: False
In [87]: bool(['a'])
Out[87]: True
答案 1 :(得分:1)
true_or_false=input("Is it true or false?")
将为变量true_or_false
提供一个字符串值。
if true_or_false
将测试是否为空字符串。
解决方案是将字符串与字符串值进行比较:
if true_or_false == 'True'
如果你想用大写和小写字母来防止错误,你可以这样做:
if true_or_false.lower() == 'true'
答案 2 :(得分:0)
python中的字符串总是计算为True
,除非它们是空的。您需要检查字符串是否等于"True"