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

Python 如何将输入转换为布尔类型并在if和else语句中使用它?,python,if-statement,boolean,Python,If Statement,Boolean,当我写对或错的时候,我总是得到“它是真的”。当我键入false时,我希望程序说“its false”。您在转换为bool时会遇到问题,因为从技术上讲,任何非空字符串都将计算为True x = bool(input ( "Write True or False\n")) if x is True : print("its true") elif x is False : print ("its false") 不过,您可以使用ast.literal\u eval >>

当我写对或错的时候,我总是得到“它是真的”。当我键入false时,我希望程序说“its false”。

您在转换为
bool
时会遇到问题,因为从技术上讲,任何非空字符串都将计算为
True

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

if  x is True :
  print("its true")
elif x is False :
    print ("its false")
不过,您可以使用
ast.literal\u eval

>>> bool('True')
True
>>> bool('False')
True
>>> bool('')
False
否则,您将不得不比较实际字符串本身

>>> 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")  

我想不出任何类型会属于您的
else
情况。根据您希望保留字符串的具体程度,并根据该字符串进行检查可能是一种方法。如果x==“True”,您有什么理由不想说
?在python中,空字符串将为False,但任何字符串中的文本将计算为True。“poolean”?让我想起了“普林”。
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")