2017-08-16 38 views
0

如何解决<zip object at 0x03B1C3C8>在我的程序如何打印出来的对值在我的数组

class Student(object): 
    def __init__(self, name, surname, grade, hours): 
     self.name = name 
     self.surname = surname 
     self.grade = grade 
     self.hours = hours 

    def getName(self): 
     return '{}'.format(self.name) 

    def getSurname(self): 
     return '{}'.format(self.surname) 

    def getGrade(self): 
     return zip(self.grade, self.hours) 

    def getHours(self): 
     return '{}'.format(self.hours) 

    def getQPoints(self): 
     pass 

stud1 = Student("John","Brown",["A","B","A"],["15.0","25.0","20.0"]) 
stud2 = Student("Mary","Watson","B","20") 

print (stud1.getGrade()) 
print (stud1.getHours()) 
+0

'return list(zip(self.grade,self.hours))' – dawg

回答

0

只要使用list()象下面这样:

def getGrade(self): 
    return list(zip(self.grade, self.hours)) 

注:你不需要如果您只需要循环返回的zip对象,则应用list()

>>> for i, j in stud1.getGrade(): 
...  print(i, j) 
... 
('A', '15.0') 
('B', '25.0') 
('A', '20.0') 
+0

Thanks list()帮了很多! – Ibrahim

0

我说你浑然忘记邮编:

class Student(object): 
    def __init__(self, name, surname, grade, hours): 
     self.name = name 
     self.surname = surname 
     self.grade = grade 
     self.hours = hours 

    def getName(self): 
     return '{}'.format(self.name) 

    def getSurname(self): 
     return '{}'.format(self.surname) 

    def getGrade(self): 
     return (self.grade, self.hours) 

    def getHours(self): 
     return '{}'.format(self.hours) 

    def getQPoints(self): 
     pass 

stud1 = Student("John","Brown",["A","B","A"],["15.0","25.0","20.0"]) 
stud2 = Student("Mary","Watson","B","20") 

print (stud1.getGrade()) 
print (stud1.getHours()) 

return (self.grade, self.hours)将创建一个元组,你可以再打印

0

从Python文档,当您使用zip它返回一个迭代器的元组(python用这些'()'定义)。

这将可能是最简单的,只是遍历你的成绩元组,像这样:

for grade in stud1.getGrades(): 
    print("Grade: " + grade[0] + " Hours studied: " + grade[1]) 

这会给你:

Grade: A Hours studied: 15.0 
Grade: B Hours studied: 25.0 
Grade: A Hours studied: 20.0 

但我宁愿有Student.getGrade返回成绩列表只。然后有另一个功能getReport,打印小时以及等级。

+0

一个很好的解决方案,但我的任务说我必须用'print(stud1.getGrade())' – Ibrahim