class Student:
def __init__(self, name, hours, qpoints):
self.name = name
self.hours = float(hours)
self.qpoints = float(qpoints)
def getName(self):
return self.name
def getHours(self):
return self.hours
def getQPoints(self):
return self.qpoints
def gpa(self):
return self.qpoints/self.hours
def makeStudent(infoStr):
name, hours, qpoints = infoStr.split("\t")
return Student(name, hours, qpoints)
def main():
fileName = input("Enter file name: ")
infile = open(fileName, "r")
best = makeStudent(infile.readline())
for line in infile:
s = makeStudent(line)
if s.gpa() > best.gpa():
best = s
infile.close()
print("The best student is:", best.getName())
print("hours:", best.getHours())
print("GPA:", best.gpa())
if __name__ == '__main__':
main()
Я хочу прочитать строку из текстового файла, разделить ее на "\ t" или "," чтобы я мог назначить ее переменным, и я получаю "ValueError: недостаточно значений для распаковки (ожидается 3, получено 1 ) в функции makeStudent (infoStr). Файл, который я использую, написан правильно, я получаю ту же ошибку, если редактирую файл и код в «,» вместо «\ t». Почему это происходит? . Решено.