gpt4 book ai didi

python - 此 for 循环仅显示学生记录的最后一个条目

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:32 25 4
gpt4 key购买 nike

当我在学生类(class)中创建多个实例时display 方法只显示最后一个条目这是我的代码

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()

read方法很好用,我可以输入很多学生记录但是我的显示方法有问题,它只打印最后一个学生记录

所以我尝试迭代循环但以错误告终

for i  in student():
emp[i].display()

TypeError: 'int' 对象不可迭代

那么我如何迭代来检索所有对象并得到显示所有输入的学生记录

最佳答案

您在 for 循环中使用相同的变量。在每次迭代中,最后输入的学生将被删除并替换为新数据。您应该使用数组(或任何其他适用于您的用例的数据结构)并在每次迭代时在数组中添加一个新学生。

这段代码应该可以工作:

arr = list()
for i in range(n):
emp=student()
emp.read()
arr.append(emp)

关于python - 此 for 循环仅显示学生记录的最后一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57536780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com