Python 如何在循环期间分配新变量?

Python 如何在循环期间分配新变量?,python,python-3.x,Python,Python 3.x,我不是以英语为母语的人,所以如果我犯了一些英语错误,请原谅 我目前正在开发一个Python程序,就在这里。 这就是我的代码的样子: 你可能会猜,是的,我是个初学者 我试图让assign new variable student[I]成为一个新的变量,但它却给了我一个错误 正确的编码方法是什么 谢谢你的帮助 在屏幕上,看起来您正在将Student实例分配给Student变量,因此它不支持项目分配Student[i] 要修复它,您可以将其更改为列表并附加到结果中 students=[] i=0 而

我不是以英语为母语的人,所以如果我犯了一些英语错误,请原谅

我目前正在开发一个Python程序,就在这里。 这就是我的代码的样子:

你可能会猜,是的,我是个初学者

我试图让assign new variable student[I]成为一个新的变量,但它却给了我一个错误

正确的编码方法是什么


谢谢你的帮助

在屏幕上,看起来您正在将
Student
实例分配给
Student
变量,因此它不支持项目分配
Student[i]

要修复它,您可以将其更改为列表并附加到结果中

students=[]
i=0
而我<4:
student=Studen(姓名列表[i],数学列表[i])
学生。附加(学生)
i+=1
印刷品(学生)
对于学生中的学生:
打印(学生名和分数()

看起来您定义了类,但从未实例化过它。看起来您还试图将这些
Student
对象添加到数组中,因此首先在声明mathlist后添加一个空数组:

students = []
那么,在继续之前,我想澄清一些事情。你似乎对变量的范围很困惑。Python在一个范围内定义符号:简单地说,如果您在一个块中声明了某个内容,那么它将从该块及其内部分层的任何块中可见,这意味着如果您在
for
循环中定义了一个变量,那么它在其外部将不可见。这并不意味着您对已声明的符号所做的更改在修改它们的块外不成立,这可能就是为什么要创建一个列表,然后向其中添加元素:列表在循环外部声明,因此如果从循环内部向其添加
Student
对象,您也可以在循环外部访问它们

也就是说,在第一个循环中,只需替换

student[i]=Students(namelist[i], mathlist[i])

您将获得所需的输出,数组中位于
i
位置的
Student
对象将
namelist[i]
mathlist[i]
作为参数


关于重命名变量的注意事项:我将您的
Students
类重命名为
Student
,因为类通常定义一个单一实体,所以如果我这样做
peter=Student('peter',5)
,我可以说
peter
是一个
Student
。我将
student
列表重命名为
students
,因为列表是Python中多个对象的集合,所以在本例中最好使用复数名称来定义。post-your-code,而不是image
student
是一个
student
对象,它不支持这样的索引。你希望它能做什么?或者您正在尝试动态创建一个新变量?你不应该那样做。使用
列表
dict
您没有定义
学生
是什么。@juanpa.arrivillaga由于错误消息,您如何知道
学生
学生
的实例?@Selcuk
students.add(Student(namelist[i], mathlist[i])