-2

情報セキュリティとネットワーク プログラミングに最近興味を持ったため、インターネットを通じて Python を学ぶことにしました。ユーザーが希望する人数のバイオデータ (名前、年齢、および仕事) を保存できるようにするコードを作成しようとしています。そして、O/P は、それらすべての人々のバイオデータと人数で構成されます。Python は初めてなので、エラーを特定できません。ありがとう - シド

これが私のコードです:

    #!/usr/bin/python
    class Bio:
        counts = 0
        myBio = []
        def __init__(self, name, age, job):
            Bio.myBio[Bio.counts] = name
            Bio.myBio[Bio.counts+1] = age
            Bio.myBio[Bio.counts+2] = job
            Bio.counts + 1
        def display(self):
            for myBio in range(0, Bio.counts):
                    print myBio
    while 1:
        name = raw_input("Enter your name: ")
        age = int(raw_input("Enter your age: "))
        job  = raw_input("Enter your Job: ")
        details = Bio(name, age, job)
        details.display()
        print "Detail Count %d" % Bio.myBio
        anymore = raw_input("Anymore details ?: (y/n)")
        if anymore == 'n':
            break

これが私のO / Pのトレースです:

   ./bio.py
   Enter your name: Sid
   Enter your age: 21
   Enter your Job: InfoSec
   Traceback (most recent call last):
   File "./bio.py", line 25, in <module>
   details = Bio(name, age, job)
   File "./bio.py", line 9, in __init__
   Bio.myBio[Bio.counts] = name
   IndexError: list assignment index out of range*
4

2 に答える 2

-1

おそらくあなたが探しているものは次のとおりです。

def __init__(self, name, age, job):
    Bio.myBio.append(name)
    Bio.myBio.append(age)
    Bio.myBio.append(job)
    Bio.counts + 1

問題は、クラスを作成するときに要素Bio.countsBio.counts+1、およびBio.counts+2が存在しないことです。メソッドでそれらを作成する必要がありますappend

ノート

Bio.countsおそらく変数は必要ありません。displayのように書き換えることができます.

def display(self):
    for myBio in Bio.myBio:
        print myBio

また、なぜBioの代わりに を使用しているのかについても考えたいと思うでしょうself

于 2013-05-21T05:02:05.297 に答える