如何将输入转换为布尔类型并在if和else语句中使用它?

时间:2014-12-03 16:46:37

标签: python if-statement boolean

x = bool(input ( "Write True or False\n"))

if  x is True :
  print("its true")
elif x is False :
    print ("its false")

当我写真或假时,我总是得到"它的真实"。我希望程序说"它的错误"当我输入False时。

2 个答案:

答案 0 :(得分:1)

转换为bool时会遇到问题,因为从技术上讲,任何非空字符串都会评估为True

>>> bool('True')
True
>>> bool('False')
True
>>> bool('')
False

您可以使用ast.literal_eval

>>> from ast import literal_eval
>>> literal_eval('True')
True
>>> literal_eval('False')
False

否则你必须自己比较实际的字符串

x = input("Write True or False\n")

if x in ('True', 'true'):
  print("its true")
elif x in ('False', 'false'):
    print ("its false")
else:
    print("don't know what that is")  

答案 1 :(得分:0)

我只是比较字符串:

x = input("Write True or False\n")

if x == "True":
  print("its true")
elif x == "False":
    print ("its false")
else:
    print("don't know what that is")