AttributeError:'str'对象在python 2中没有属性'append'

问题描述 投票:-2回答:3

我会给你我的python代码(这是非常基本且很小的),如果你能告诉我我哪里错了。非常感谢,不要讨厌:)

ekt=[]
pl=[]
nm=[]
for i in range(5):
    nms=raw_input("Ποιο το όνομα της χώρας?")
    ekts=input("Ποια η εκταση της χώρας αυτής?")
    pls=input("Ποιός είναι ο πληθυσμός της χώρας αυτής?")
    nms.append(ekt)
    ekts.append(ekt)
    nms.append(nm)
max_ekts=-2
min_pls=-2
for i in range(5):
    if ekt[i]>max_ekts:
        max_ekts=ekt[i]
        max_ekts_nm=nm[i]
    if pl[i]>min_pls:
        min_pls=pl[i]
        min_pls_nm=nm[i]
    sum_pls=sum_pls+pl[i]
mo_pls=max_pls/5.0
print"Χώρα με την μεγαλύτερη έκταση:",max_ekts_nm
print"χώρα με το μικρότερο πληθυσμό:",min_pls_nm
print"O μέσος όρο του πληθυσμού των 15 χωρών της Ευρωπαϊκής Ένωσης:",mo_pls

错误是:AttributeError:'str'对象没有属性'append'

python python-2.x
3个回答
1
投票

您的错误很简单,看,尽管在代码的开头声明了以下列表:

ekt=[]
pl=[]
nm=[]

接下来要做的是使用那些完全相同的变量名来捕获您的输入:

nms=raw_input("Ποιο το όνομα της χώρας?")
ekts=input("Ποια η εκταση της χώρας αυτής?")
pls=input("Ποιός είναι ο πληθυσμός της χώρας αυτής?")

但是您没有在原始列表上进行追加,因此代码看起来像这样:

nms.append(ekt)
ekts.append(ekt)
nms.append(nm)

但是nms不是原始列表,您的原始列表称为nmnms是您刚刚读取的字符串。同样ekt(您要附加的值)也不是您读取的字符串(称为ekts),ekt是您在代码开头声明的列表。因此,基本上,您尝试将列表追加到字符串对象,但无法完成。同样的情况也适用于以下行,请重新检查变量的名称。


0
投票

当您从用户那里读取输入时,它是字符串类型-

nms=raw_input("Ποιο το όνομα της χώρας?")

nms是字符串。之后,您尝试附加nms.append(ekt),但字符串类型没有附加。我想你的意思是nm.append(nms)


0
投票

好吧,我想我已经修复了我的代码,它实际上在工作,看看吧!我尝试在字符串输入中使用.append,并且有效!!]

ekt=[]
pl=[]
nm=[]
for i in range(5):
    nms=raw_input("Ποιο το όνομα της χώρας?")
    ekts=input("Ποια η εκταση της χώρας αυτής?")
    pls=input("Ποιός είναι ο πληθυσμός της χώρας αυτής?")
    ekt.append(ekts)
    pl.append(pls)
    nm.append(nms)
max_ekts=-2
min_pls=-2
sum_pls=0
for i in range(5):
    if ekt[i]>max_ekts:
        max_ekts=ekt[i]
        max_ekts_nm=nm[i]
    if pl[i]>min_pls:
        min_pls=pl[i]
        min_pls_nm=nm[i]
    sum_pls=sum_pls+pl[i]
mo_pls=sum_pls/5.0
print"Χώρα με την μεγαλύτερη έκταση:",max_ekts_nm
print"χώρα με το μικρότερο πληθυσμό:",min_pls_nm
print"O μέσος όρο του πληθυσμού των 15 χωρών της Ευρωπαϊκής Ένωσης:",mo_pls

以后我会考虑使用+ =

© www.soinside.com 2019 - 2024. All rights reserved.