首页 > 解决方案 > 列表输入的 Python 验证正在跳过无效索引?

问题描述

我正在尝试构建一个代码,该代码创建一个包含 9 个列表的列表,每个列表还包含 9 个元素。我创建了一个转换器来验证每个条目的大小,然后将它们拆分为其单独的各个元素。它正确地注意到不完整的长度,并在输出之前需要正确数量的有效输入,但由于某种原因,第一次读取无效的每个索引都不会返回新的有效输入。下面是代码。

只是我忽略了一些简单的语法还是我的代码不够?


print('Please enter your line with no spaces or commas')

board_list = [[], [], [], [], [], [], [], [], []]

def convert(line):
    li = [int(x) for x in str(line)]
    if len(li) == 9:
        return li
    else:
        print("Your line was not valid, please try again.")
        convert(input())

def create_board(bo):
    for row in range(len(bo)):
        print('Please enter the line below:')
        board_list[row] = convert(input())

create_board(board_list)
print(board_list)

'''

标签: pythonlist

解决方案


在方法中添加returninelse语句convert()

def convert(line):
    li = [int(x) for x in str(line)]
    if len(li) == 9:
        return li
    else:
        print("Your line was not valid, please try again.")
        return convert(input())

推荐阅读