Python:for循环中的Input()错误

3
for i in range(5):
    mylist[i]=int(input("Input an integer: "))

我真的需要在for循环之前定义mylist,才能在其后使用吗? 在第一个循环中,它可以正常工作,但在第二个循环中会显示NameError错误。 我需要使用不同的输入方法吗?

NameError: name 'mylist' is not defined


1
是的,您不能索引不存在的变量。在循环之前声明“mylist”,否则您将遇到“IndexError”和“NameError”问题。 - Collin Heist
你好,欢迎来到 StackOverflow,请展示你的完整内容。 - Yeshwin Verma
除非您有未显示的更多代码,否则尝试在尚未定义的列表索引处设置或获取某些内容是没有意义的。 - Random Davis
请查看我的答案。 - Yeshwin Verma
5个回答

2
是的,在给“mylist”赋值之前,您需要定义它。
mylist = []
for i in range(5):
    mylist.append(int(input("Input an integer: ")))

3
这会导致 IndexError 错误 - 事先设置大小,例如 mylist = [None] * 5 - Collin Heist
使用append方法将任何内容添加到列表中。 - Srikanth Bhandary

0

是的,你必须先像这样定义列表

mylist=[]
for i in range(5):
    mylist[i]=int(input("Input an integer: "))

1
正如TimTam的回答所指出的那样,如果列表的大小没有事先声明,这将抛出“IndexError”。这可以通过使用.append()来规避。 - Collin Heist

0

你可以使用列表推导式

mylist = [int(input("Input an integer: ")) for _ in range(5)]

0

在给mylist赋值之前,你需要先定义它。

mylist = [1, 2, 3, 4, 5]
for i in range(5):
    mylist[i]=int(input("Input an integer: "))

或者如果你想填充空列表,可以使用append()列表函数

mylist = []
for i in range(5):
    mylist.append(input("Input an integer: "))

0

是的,在循环之前需要定义列表,还需要定义内容,否则会抛出错误。 注意:这里我使用了0,你也可以使用关键字None。

myList = [0, 0, 0, 0, 0]
for i in range(5):
    myList[i] = int(input("Enter a int: "))

或者你也可以使用append函数,这样你就不需要定义myList包含什么了。
myList = []
for i in range(5):
    myList.append(int(input("Enter a int: ")))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接