输入错误后的新输入

时间:2018-01-06 08:31:26

标签: python arrays

a = input()   
def word_to_list(a):
        b = str(a)
        code2 = []
        for digit in b:
            code2.append (int(digit))
        if len(code2) != 4:
            print("no right amount")
        else:
            print(code2)
code2 = word_to_list(a)

我得到了这段代码,我想要的是你可以在代码短路时再做一次尝试(因为你需要长度为4)。有人知道它是如何工作的,这样你就可以做一个新的输入吗?

2 个答案:

答案 0 :(得分:0)

您可以在获得新输入后从内部调用该函数,如下所示:

def word_to_list(a):
    code = []
    for digit in str(a):
        code.append(int(digit))
    if len(code) != 4:
        print("no right amount")
        # Input a new value, then call function with it again
        word_to_list(input())
    else:
        print(code)

code2 = word_to_list(input())

这个(递归调用)充当循环,在它输入长度为4的代码之前,它会不断询问代码的使用。


这是一个更短,更有效的等效版本:

def code_to_list(c):
    code_to_list(input("Try again")) if len(c) != 4 else print([int(d) for d in c])

答案 1 :(得分:0)

以下代码段使用while循环来执行您想要的操作。它确实检查小于4而不是不等于4,因为我不确定你想要什么。它首先要求一个代码字,它一直询问,直到用户输入一个足够长的代码字。我使用列表推导缩短了word_to_list()

code2 = input()
while len(code2) < 4:
    code2 = input()
code2 = [int(c) for c in code2]