我正在编写一个程序,从文件中读取数字和名称,并将它们转换为Person对象。它的方法应该能够显示名称或数字,或所有人的姓名和号码。但由于某种原因,我在我的环境类中遇到语法错误,我在填充方法内的while循环中'y + = 2'处增加y。
class Person (object):
pplCnt = 0
def __init__ (self,name,number):
print("Creating a person named ", name, ", phone number: ", number)
self.name = name
self.number = number
Person.pplCnt+=1
def getName(self):
return self.name
def getNum(self):
return self.number
def getAmtPpl(self):
return Person.pplCnt
class Environtment:
x=0
y=0
def __init__(self):
self.pplList = []
def populate(self):
people = open("names.txt","r")
listof = []
for line in people:
listof.append(line)
x+=1
while y<=x:
self.pplList.append(Person(listof[y],listof[y+1])
y+=2
def nameAll(self):
z=0
while z < int(x/2):
print("Name: ",self.pplList[z].getName(),"\nNumber: ",self.pplList[z].getNum(),"\n")
答案 0 :(得分:4)
你错过了一个括号
self.pplList.append(Person(listof[y],listof[y+1])
99%的奇怪语法错误是由上面一行上的未闭合括号引起的,因为python正在尝试执行行继续操作,这会导致语法错误。毕竟,我们不期望
self.pplList.append(Person(listof[y],listof[y+1])y+=2
是正确的语法。