-1

ファイルから数字と名前を読み取り、それらを Person オブジェクトに変換するプログラムを作成しています。そのメソッドは、名前または番号、またはすべての人の名前と番号を表示できる必要があります。しかし、何らかの理由で、populate メソッド内の while ループで 'y+=2' で y を増やしている構文エラーが発生して、Environment クラスでスタックしています。

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")
4

1 に答える 1

4

括弧がありません

self.pplList.append(Person(listof[y],listof[y+1])

奇妙な構文エラーの 99% は、上記の行の括弧が閉じていないことが原因です。これは、Python が行の継続を行おうとして構文エラーが発生するためです。結局のところ、私たちは期待していません

self.pplList.append(Person(listof[y],listof[y+1])y+=2

適切な構文であること。

于 2013-05-20T02:41:41.687 に答える