输入的错误处理:int 元素列表



我正在尝试错误地处理numbers_list变量的输入行。但我不确定如何做到这一点。我希望输入是 int、空格、int ..

例如:

输入您要操作的数字,用空格分隔:4 7

或者另一个例子可能是:

输入您要操作的数字(以空格分隔(:5 6 7 8

这是我的代码:

def check_numbers_valid(prompt):
while True:
try:
i = input(prompt))
if i != int,'', int:
print("This is not the correct format. Please reenter.")
else:
break
except:
print("Enter an integer.")
return i

#game function
def game(sys):
#input
#turns input into list from different elements they enter
numbers_list = list(map(int, input("Enter the numbers you would like to operate on separated by space: ").split()))

我只是不确定在空间中放入什么"如果我!= int int:"空间。我知道这行不通,但我不知道如何编码,因为我只知道如何进行单一的 int 错误处理。

谢谢:)

def check_numbers_valid(prompt):
while True:
try:
i = input(prompt)
[int(k) for k in i.split(" ")]
#i.split(" ") separates i into a list of strings
#if any of them can't be turned into an integer,
#it will cause a ValueError
except:
print("""This is not the correct format. Please reenter. (correct format: 
integers separated by spaces)""")
continue
else:
break
return i

我稍微移动了一下代码,并添加了一些东西来检查输入的非空格部分是否可以转换为整数列表。如果不能,它将抛出错误并继续循环。如果可以,它就会脱离循环。希望我能帮上忙。

这个问题有点模糊,但我希望这有所帮助:

当您从用户那里获得输入时,它以字符串的形式出现(在这种情况下,理想情况下,您需要用空格分隔的数字,例如"1 2 3 4"(

然后,您可以拆分此字符串,并将每个元素转换为整数,如下所示:

i = input(prompt) # let's assume: i = '1 2 3 4'
nums = i.split(' ') # forms a list by separating on spaces: i = ['1', '2', '3', '4']
nums_list = [int(num) for num in nums]

如果输入的数据类型不能用作 int(num(,则最后一行代码将引发 ValueError。

希望这有帮助!

最新更新