Python:确保用户输入的字符串有效,并拒绝任何其他输入

Python:确保用户输入的字符串有效,并拒绝任何其他输入,python,Python,试图配置我的程序,使其在整个程序中只接受“是”和“否”的回答,而任何其他输入(如整数和其他字符串)都会产生错误消息。使用.isalpha()对我也不起作用,如果您有任何关于如何帮助编写代码的提示,我将不胜感激 text = True if text: textHelp = input('Are you sleeping? '.isalpha()) if textHelp == 'yes': print('Cannot take p

试图配置我的程序,使其在整个程序中只接受“是”和“否”的回答,而任何其他输入(如整数和其他字符串)都会产生错误消息。使用.isalpha()对我也不起作用,如果您有任何关于如何帮助编写代码的提示,我将不胜感激

text = True

    if text:
        textHelp = input('Are you sleeping? '.isalpha())
        if textHelp == 'yes':
            print('Cannot take phone call b/c im sleeping')
        else:
            print('Can take phone call)

您可以使用if..elif..else尝试使用like:

if textHelp == 'yes':
    print('Cannot take phone call b/c im sleeping')
elif textHelp == 'no':
    print('Can take phone call')
else:
   print("Faulty message")
如果要继续提示无效输入,请执行以下操作:

while True:
  if textHelp == 'yes':
    print('Cannot take phone call b/c im sleeping')
    break
  elif textHelp == 'no':
    print('Can take phone call')
    break
  else:
   print("Faulty message")

我想这就是你要找的

为true时:
textHelp=input('你在睡觉吗?')
如果text help.isalpha():
#您的预期输出。。。
打破
其他:
打印(“重试!”)

但是我认为@WasifHasan的答案更清楚。

从你的描述中,你想要的是这样的:

input\u text=input('你在睡觉吗?')。lower()
如果输入_text==“是”:
打印('无法接听电话b/c im睡眠')
elif input_text==‘否’:
打印('可以接听电话')
其他:
打印('答案应为“是”或“否”)

Thr
.lower()
方法确保“是”、“是”、“是”等都被同等对待。对于这种情况,您不需要使用
.isalpha()
方法。

当然,这可以放在一个循环中运行它,直到您得到“yes”或“no”作为输入