Python 在循环选择题的时候?

Python 在循环选择题的时候?,python,python-2.7,while-loop,Python,Python 2.7,While Loop,所以这就是我想要解决的问题。我希望Yes和No都等于相同的东西,并结束循环(我还没有开始),尽管当输入的东西不是Yes或No时,它会再次循环问题,直到输入Yes或No为止。我很难弄明白如何做这一部分,我仍在学习,而循环是我的新领域 我用的是2.7 d1 = raw_input('Please answer with Yes or No.\n') if d1 == 'Yes': print('Good, let\'s begin.') elif d1 == 'No': print(

所以这就是我想要解决的问题。我希望Yes和No都等于相同的东西,并结束循环(我还没有开始),尽管当输入的东西不是Yes或No时,它会再次循环问题,直到输入Yes或No为止。我很难弄明白如何做这一部分,我仍在学习,而循环是我的新领域

我用的是2.7

d1 = raw_input('Please answer with Yes or No.\n')
if d1 == 'Yes':
    print('Good, let\'s begin.')
elif d1 == 'No':
    print('Good, let\'s begin.')
if d1 == 'yes':
    print('Good, let\'s begin.')
elif d1 == 'no':
    print('Good, let\'s begin.')
else:
    ps('Mmmmm...')

您可以使用无尽的while循环:

while True: # Endless While Loop

    d1 = raw_input('Please answer with Yes or No.\n').upper()

    if(d1 == 'YES'):
        print('Good, let\'s begin.')
        break                           # Exits While Loop
    elif(d1 == 'NO'):
        print('Good, let\'s begin.')
        break                           # Exits While Loop
    else:
        print('Mmmmm... Do something...')
希望有帮助

试试这个:

while True:
    d1 = input('Please answer with Yes or No.\n')
    if d1.lower() in ('yes', 'no'):
        print('Good, let\'s begin.')
        break
    else:
        print('MMMMmm')

这是一个简单的问题。试试这个

while True:
    d1 = raw_input('Please answer with Yes or No.\n')
    if d1 in ('Yes','No'):
        print('Good, let\'s begin.')
        break

在编写任何类型的循环时都要记住两件事,尤其是
,而
循环是

  • 我在循环什么
  • 循环的终点是什么?更具体地说,我可以立即知道这种情况,还是必须先运行循环
  • #在这种情况下,1只是原始输入#2是当
    d1
    在某种形式上为是或否时。在进入循环之前,您无法知道这一点,因此您无法直接将其置于循环的条件中。这给您留下了两个选择:

  • 设置一个变量来表示条件,并对其进行初始化,以确保循环的第一次迭代:

    found = False
    while not found:
        d1 = raw_input(...)
        if d1.lower() in ('yes', 'no'):
            found = False
        else:
            print("Mmmm")
    print("Good, let's begin.")
    
  • 当满足条件时,打破无限循环:

    while True:
        d1 = raw_input(...)
        if d1.lower() in ('yes', 'no'):
            break
        print("Mmmm")
    print("Good, let's begin.")
    
  • 我认为对于您介绍的简单示例,第二个选项稍微优雅一些。第一个选项对于更复杂的情况很有用,在这种情况下,您需要在退出循环之前做更多不相关的事情。它允许三种类型的响应来评估条件:true、false和OR。第二个版本只支持前两个版本,这对于您的案例来说更加精简

    我建议将输入处理后的命令(由
    print(“好,让我们开始”)
    表示)放在循环之外。它们实际上与循环无关,因此不应成为循环的一部分


    此外,如果字符串包含单引号,请在字符串周围使用双引号。这是Python有两种引号的主要原因。

    如果d1在('YES','NO'):
    会更好…或者
    d1.lower()在('YES','NO')
    你确定它是Python2.7吗?因为来自Python3的
    print()
    。但是您使用的是原始输入-它是从Python2.7开始的,从Python2.7.4开始,您可以使用带括号的
    print()
    ,就像在Python3.x中一样,来自未来导入打印的
    函数是隐式的。您可以通过转换为小写来将输入选项减半…就像另一个答案一样,
    如果d1.lower()在('yes','no')):
    是一个很好的选择。