Как использовать цикл For для печати всех элементов в классе Python - PullRequest
0 голосов
/ 26 ноября 2018

Я создал новый класс:

testing.py:

class student:
    def __init__(self, name, major, gpa):
        self.nm = name
        self.mj = major
        self.gp = gpa

, затем я перехожу к своему рабочему файлу testing.py:

from testing import student
student1=student("Marcos","Physics",3.99)
student2=student("Phillyp","Biology",2.99)
student3=student("Naim", "Architecture", 3.42)

for k in range(1,4):
    print(student(k).gp) <------- how do I merge this string with int!?!?

Моя конечная цель - распечатать ВСЕ gpa всех студентов, поэтому я знаю, что мне нужно сделать

print(student1.gp)
print(student2.gp)
print(student3.gp)

Итак, как мне объединить k в имя переменной, чтобы создать student1.gp, student2.gpи т. д.

Большое вам спасибо!

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Что вы должны сделать, это поместить все объекты в list.Например,

from testing import student

student1 = student("Marcos","Physics",3.99)
student2 = student("Phillyp","Biology",2.99)
student3 = student("Naim", "Architecture", 3.42)

students = [student1, student2, student3]

for student in students:
    print(student.gp) 
0 голосов
/ 26 ноября 2018

вместо этого for k in range(1,4): вы хотите перебрать список всех ваших студентов:

students = [student1, student2, student3]
for student in students:
    print(student.gp)

РЕДАКТИРОВАТЬ

Если вы хотите иметь возможность ссылаться на студентов по имени, храните их в dict:

students = {'student1': student("Marcos","Physics",3.99),
            'student2': student("Phillyp","Biology",2.99),
            'student3': student("Naim", "Architecture", 3.42)}

for i in range(1, 4):
    print(students[f'student{i}'].gp)
    # if less than python 3.6
    # print(students['student{}'.format(i)].gp)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...