Python 在循环选择题的时候?
所以这就是我想要解决的问题。我希望Yes和No都等于相同的东西,并结束循环(我还没有开始),尽管当输入的东西不是Yes或No时,它会再次循环问题,直到输入Yes或No为止。我很难弄明白如何做这一部分,我仍在学习,而循环是我的新领域 我用的是2.7Python 在循环选择题的时候?,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(
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')):
是一个很好的选择。