由于我最近对信息安全和网络编程的兴趣,我决定通过互联网学习Python。我正在尝试编写一段代码,允许用户存储所需人数的Biodata(姓名,年龄和工作)。然后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*
答案 0 :(得分:1)
这就是你想要的:
class Bio:
def __init__(self, name, age, job):
self.name = name
self.age = age
self.job = job
答案 1 :(得分:-1)
您所寻找的可能是:
def __init__(self, name, age, job):
Bio.myBio.append(name)
Bio.myBio.append(age)
Bio.myBio.append(job)
Bio.counts + 1
问题是,在创建类时,元素Bio.counts
,Bio.counts+1
和Bio.counts+2
不存在;你必须使用append
方法创建它们。
注意强>
您可能不需要Bio.counts
变量。您可以将display
重写为
def display(self):
for myBio in Bio.myBio:
print myBio
您可能还想考虑使用Bio
代替self
的原因。