当我在学生类(class)中创建多个实例时 显示方法仅显示最后一个条目 这是我的代码
class student:
def __init__(self):
self.usn= None
self.name=None
self.branch=None
self.phno=None
def read(self):
self.usn=input("enter the usn: ")
self.name=input("enter the name: ")
self.branch=input("enter the branch: ")
self.phno=input("enter the phno: ")
def display(self):
print(f'\n{self.usn} {self.name} {self.branch} {self.phno}\n')
print(f'\nusn %name branch phno\n')
n=int(input("enter number of students : "))
for i in range(n):
emp=student()
emp.read()
print("\nusn name branch phno\n")
for i in student():
emp[i].display()
读取方法效果很好,我可以输入很多学生记录 但我的显示方法有问题,它只打印最后一个学生记录
所以我尝试迭代循环,但最终出现错误
for i in student():
emp[i].display()
类型错误:“int”对象不可迭代
那么如何迭代来检索所有对象 并显示所有输入的学生记录
最佳答案
您在 for 循环内使用相同的变量。在每次迭代中,最后输入的学生都会被删除并替换为新数据。您应该使用数组(或任何其他适合您的用例的数据结构)并在每次迭代时在数组中添加一个新的 Student。
这段代码应该可以工作:
arr = list()
for i in range(n):
emp=student()
emp.read()
arr.append(emp)
关于python - 此 for 循环仅显示学生记录的最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57536780/