AttributeError: 'str' object has no attribute 'append' in python 2

AttributeError: 'str' object has no attribute 'append' in python 2

我会给你我的 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' object has no attribute 'append'

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

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

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

你的错误很简单,看,虽然在代码的开头你声明了以下列表:

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

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

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

但是您没有对原始列表进行追加,这就是您的代码的样子:

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

但是nms不是原来的列表,你原来的列表叫nmnms就是你刚才读取的字符串。另外 ekt,您要附加的值不是您读取的字符串(称为 ekts),ekt 是您在代码开头声明的列表。所以基本上你试图将一个列表附加到一个字符串对象,这是不可能的。同样的事情适用于那一行下面的行,请重新检查您的变量名称。

好的,我想我修复了我的代码,它确实可以正常工作,看一看!我尝试在字符串输入上使用 .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

以后会考虑用+=