我正在尝试创建一个重复运行另一个函数的函数,直到用户输入" False"对于变量WhatIsLove,但无论输入WhatIsLove返回true。发生了什么事?
def DontHurtMeNoMore():
WhatIsLove = bool(True)
while bool(WhatIsLove) == True:
print hexboi()
WhatIsLove == bool(input("Would you like to run the program again? True or False: "))
答案 0 :(得分:0)
问题是input
返回一个字符串,字符串总是返回True
。
>>> bool('a')
True
>>> bool('False')
True
所以,你需要做的是:
x = input("Would you like to run the program again? True or False: ")
if x.lower() == 'True':
WhatIsLove = True
else:
WhatIsLove = False
答案 1 :(得分:0)
bool 没有转换"显示"值返回布尔值;它评估表达式。任何字符串都会评估为" Truthy" True 的值,但空字符串除外,您无法使用输入读取。
您需要检查字符串的实际字符。您可能还希望了解布尔值:您的检查是多余的。试试这个:
prompt = "Would you like to run the program again? True or False: "
def DontHurtMeNoMore():
WhatIsLove = True
while WhatIsLove:
print hexboi()
WhatIsLove = input(prompt) == "True"