为lis分配输入时出现问题

2024-06-12 21:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这可能是一个简单的问题,但是在阅读了Python2.6.4的文档之后,我似乎无法找出问题所在。这是我的全部档案。我遇到的问题是在get_phone_number()中。在询问电话号码的数量后,我得到一个错误:

Traceback (most recent call last):
  File "/home/charles/workspace/HelloWorld/hello.py", line 27, in <module>
    c.get_phone_number()
  File "/home/charles/workspace/HelloWorld/hello.py", line 17, in get_phone_number
    self.phone_number[phone_count]
AttributeError: Contact instance has no attribute 'phone_number'

似乎我可以动态地定义一个属性,但如果它是一个列表,那就不行了?请帮忙!在

^{pr2}$

Tags: in文档pynumberhellohomegetline
3条回答

你需要初始化自身电话号码在

 def get_phone_number(self):
            count = 0
            phone_count = raw_input("How many phone numbers?\n")
            self.phone_number = []
            while count < (phone_count - 1):
                self.phone_number.append (raw_input("Phone Number: "))
                phone_count -= 1

更换

self.phone_number[phone_count]

^{pr2}$

第一个语句什么也不做(实际上,它试图在self中访问名为phone_number的列表的phone_count-th元素,该元素不存在,因此出现错误)。在

第二个语句定义了一个名为phone_number的新列表。在

您的代码包含很多错误,并且不是python代码。要点:您需要将第一个用户输入转换为整数。可以使用while循环代替while循环。在python2.5上,可以使用xrange而不是range,但对于python3.0,则使用range。使用“附加”将项添加到列表中。在

class Phone_Number():
    def get_phone_numbers(self):
        phone_count = int(raw_input("How many phone numbers?\n"))
        self.phone_numbers = []
        for _ in range(phone_count):
            self.phone_numbers.append(raw_input("Phone Number: "))

p = Phone_Number()
p.get_phone_numbers()
for phone_number in p.phone_numbers:
    print phone_number

相关问题 更多 >