begin = raw_input('would you like to start')
if begin == 'yes':
print 'A) awesome'
print 'B) pretty awesome'
print 'C) you dont even know'
print ''
test = raw_input('How awesome is hayden?: ')
if test == 'B' or test == 'b':
print 'correct'
else:
if test == 'A' or test == 'a' or test == 'C' or test == 'c':
print 'incorrect'
细节:一旦用户输入错误答案,程序结束或在第二次回答后遇到错误。我想循环所以在输入“c”或“b”之后它会要求另一个猜测或者他们可以再次回答。请帮忙吗?
答案 0 :(得分:3)
这是我真正希望python有until
循环结构的地方之一... 但它没有,所以我们用while
做。有很多方法可以编写逻辑 - 这是一个:
test = None
while test.lower() != 'b':
test = raw_input('How awesome is hayden?:')
if test.lower() != 'b':
print 'incorrect'
print 'correct'
另一个选择是使用2个参数iter
...
def get_input():
return raw_input('How awesome is hayden?:').lower()
for answer in iter(get_input, 'b'):
print 'incorrect'
print 'correct'
这是有效的,因为当你调用iter(function, sentinal)
时,python会调用function
(产生结果)直到function
返回sentinal
,此时它会停止产生更多的值。< / p>
答案 1 :(得分:0)
所以,你想要使用的是一个叫做循环的概念。在这种情况下,您希望用户循环,直到他们输入正确的答案。
这种类型的循环称为&#34;而#34;循环 - 在满足某个条件时继续循环。
因此,您可以编写如下所示的函数,该函数会检查提供的答案是否在正确答案列表中:
def is_correct_answer(answer, correct_answers):
return answer in correct_answers
然后你可以编写你的程序如下:
answer = None
while not is_correct_answer(answer, ['B', 'b']):
# your code for getting the answer
# make sure to set the answer variable to their answer!
需要注意的一件重要事项是确保将答案初始化为不正确的答案,因为循环首先要做的是评估函数,所以如果你开始回答包含&#39; B&#39;或者&#39; b&#39;,循环永远不会运行!
我还鼓励您阅读Python初学者指南,因为您似乎是新手! Here is a good place to start.
答案 2 :(得分:0)
您可以使用while True
创建循环,使用break
离开循环。
while True:
test = raw_input('How awesome is hayden?:').lower()
if test == 'b':
break
print 'incorrect'
print 'correct'