Python 我无法从用户输入中获取假布尔值

Python 我无法从用户输入中获取假布尔值,python,while-loop,boolean,user-input,Python,While Loop,Boolean,User Input,无论用户输入是什么,它都会转换为True 如何将输入转换为False,以便退出循环不用担心布尔文本。只需进行显式字符串比较。此外,请使用无限循环/显式中断模式,而不是布尔标志 s = True while s == True: #taking input from the user num1 = int(input("enter a number: ")) sign = input("enter a sign from :+ , - , * , /") num2 = i

无论用户输入是什么,它都会转换为True
如何将输入转换为False,以便退出循环

不用担心布尔文本。只需进行显式字符串比较。此外,请使用无限循环/显式中断模式,而不是布尔标志

s  = True
while s == True:
   #taking input from the user
   num1 = int(input("enter a number: "))
   sign = input("enter a sign from :+ , - , * , /")
   num2 = int(input("enter a second number: "))
   #calculation
   if sign == "+" :
      print(f'the sum of {num1} and {num2} is {num1+num2}')
   elif sign == "-" :
      print(f'the difference of {num1} and {num2} is {num1-num2}')
   elif sign == "*" :
      print(f'the multiplication of {num1} and {num2} is {num1*num2}')
   elif sign == "/" :
      print(f'the difference of {num1} and {num2} is {num1/num2}')
   else:
      print('invalid sign')
   s = bool(input("type True to start the calculater and False to stop the calculater: "))
您可以替换
s!=“True”
与忽略案例区别的任何更复杂的检查;允许使用“真”或“假”的同义词,如“是”/“否”、“T”/“F”等;或其他支票


问题的根源在于
bool
没有解析
str
值以查找
bool
文本。空字符串为
False
;所有其他字符串均为
True

while True:
    ...
    s = input("type True...")
    if s != "True":
        break

不要为布尔文本而烦恼。只需进行显式字符串比较。此外,请使用无限循环/显式中断模式,而不是布尔标志

s  = True
while s == True:
   #taking input from the user
   num1 = int(input("enter a number: "))
   sign = input("enter a sign from :+ , - , * , /")
   num2 = int(input("enter a second number: "))
   #calculation
   if sign == "+" :
      print(f'the sum of {num1} and {num2} is {num1+num2}')
   elif sign == "-" :
      print(f'the difference of {num1} and {num2} is {num1-num2}')
   elif sign == "*" :
      print(f'the multiplication of {num1} and {num2} is {num1*num2}')
   elif sign == "/" :
      print(f'the difference of {num1} and {num2} is {num1/num2}')
   else:
      print('invalid sign')
   s = bool(input("type True to start the calculater and False to stop the calculater: "))
您可以替换
s!=“True”
与忽略案例区别的任何更复杂的检查;允许使用“真”或“假”的同义词,如“是”/“否”、“T”/“F”等;或其他支票


问题的根源在于
bool
没有解析
str
值以查找
bool
文本。空字符串为
False
;所有其他字符串均为
True

while True:
    ...
    s = input("type True...")
    if s != "True":
        break

使用字符串参数调用
bool
时,只有空字符串会给出
False
。请参阅文档中的。您将
bool
eval
混淆
bool
仅确定其参数是否具有真实值;它不会解析字符串以查看它是否是特定的Python布尔文本。但不要使用
eval
:只需将输入与字符串
“True”
进行比较。使用字符串参数调用
bool
时,只有空字符串会给出
False
。请参阅文档中的。您将
bool
eval
混淆
bool
仅确定其参数是否具有真实值;它不会解析字符串以查看它是否是特定的Python布尔文本。但不要使用
eval
:只需将输入与字符串
“True”
进行比较即可。