如何重做循环的迭代?

时间:2017-05-24 01:39:56

标签: python python-3.x

我该怎么做才能让我的代码返回迭代?

list_ = [3,'yes',True]
for x in range(len(list_)):
    print('What is the next item in the list?')
    answer = input()
    if answer = list_[x]:
        print('Good job!')
    else:
        print('Nope! Try again.')

在代码的最后一部分('else'语句),我如何让它再次遍历for循环的相同迭代,以便用户可以再试一次?

2 个答案:

答案 0 :(得分:1)

您本身无法重复迭代。你可以做的是循环提示,直到你得到正确的答案。

for x in range(len(list_)):
    while True:
        print('What is the next item in the list?')
        answer = input()
        if answer == list_[x]:
            print('Good job!')
            break
        else:
            print('Nope! Try again.')

顺便说一下,循环遍历列表的索引是不必要的,至少在这个示例代码中没有。直接遍历列表项是更惯用的。

for x in list_:
    while True:
        print('What is the next item in the list?')
        answer = input()
        if answer == x:
            print('Good job!')
            break
        else:
            print('Nope! Try again.')

答案 1 :(得分:0)

如果你不想要一个while循环,你可以在一个带有标志的方法中定义你的循环,如果答案不正确,它将再次调用自己。虽然while循环可能是处理这个问题的更好方法。

    def askQuestions():
        list_ = [3,'yes',True]
        allcorrect = True
        for x in range(len(list_)):
            print('What is the next item in the list?')
            answer = input()
            if answer == list_[x]:
                print('Good job!')
            else:
                print('Nope! Try again.')
                allcorrect = False
                break
        if not allcorrect:
            askQuestions()

askQuestions()