Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将输入分配给列表时出现问题_Python - Fatal编程技术网

Python 将输入分配给列表时出现问题

Python 将输入分配给列表时出现问题,python,Python,我知道这可能是一个简单的问题,但在查看了Python2.6.4的文档之后,我似乎无法找出问题所在。这是我的全部档案。我遇到的问题是获取电话号码()。在询问电话号码数量后,我得到以下错误: Traceback (most recent call last): File "/home/charles/workspace/HelloWorld/hello.py", line 27, in <module> c.get_phone_number() File "/home/c

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

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'
回溯(最近一次呼叫最后一次):
文件“/home/charles/workspace/HelloWorld/hello.py”,第27行,在
c、 获取电话号码()
文件“/home/charles/workspace/HelloWorld/hello.py”,第17行,在get\u电话号码中
自助电话号码[电话号码]
AttributeError:联系人实例没有“电话号码”属性
似乎我能够动态地定义属性,但如果它是一个列表,就无法定义?请帮忙

class Name():
        def get_name(self):
            self.first = raw_input("First Name?\n")
            self.middle = raw_input("Middle Name?\n")
            self.last = raw_input("Last Name?\n")
        pass
    class Address():
        def get_address(self):
            self.street = raw_input("Street?\n")
            self.city = raw_input("City?\n")
            self.zip = raw_input("Zip Code?\n")
        pass
    class Phone_Number():
        def get_phone_number(self):
            count = 0
            phone_count = raw_input("How many phone numbers?\n")
            self.phone_number[phone_count]
            while count < (phone_count - 1):
                self.phone_number[phone_count] = raw_input("Phone Number: ")
                phone_count -= 1
        pass
    class Contact(Name, Address, Phone_Number):
        pass
    c = Contact()
    c.get_name()
    c.get_address()
    c.get_phone_number()
类名()
def get_名称(自身):
self.first=原始输入(“名字?\n”)
self.middle=原始输入(“中间名?\n”)
self.last=原始输入(“姓氏?\n”)
通过
类地址():
def get_地址(自我):
self.street=原始输入(“street?\n”)
self.city=原始输入(“城市?\n”)
self.zip=原始输入(“邮政编码?\n”)
通过
类别电话号码():
def获取电话号码(自身):
计数=0
电话号码=原始输入(“多少电话号码?\n”)
自助电话号码[电话号码]
计数<(电话计数-1):
self.phone\u number[电话号码]=原始输入(“电话号码:”)
电话计数-=1
通过
班级联系人(姓名、地址、电话号码):
通过
c=触点()
c、 获取名称()
c、 获取地址()
c、 获取电话号码()
更换

self.phone_number[phone_count]

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


第二条语句定义了一个名为phone\u number的新列表。

您需要初始化self.phone\u number

 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
def获取电话号码(自身):
计数=0
电话号码=原始输入(“多少电话号码?\n”)
self.phone_number=[]
计数<(电话计数-1):
self.phone\u number.append(原始输入(“电话号码”))
电话计数-=1

您的代码包含很多错误,并且不是Pythonic。要点:您需要将第一个用户输入转换为整数。可以使用for循环而不是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

压痕不可能是对的。请将其修复为与您的文件匹配。复制粘贴点击带有“101010”的按钮,将这些内容格式化为代码。缩进是正确的。我正在Ubuntu 9.10上使用Eclipse3.5。我已将自动缩进设置为4个空格。谢谢您,先生!你纠正了我的错误。我正在尝试学习Python C++的方法。
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