AttributeError: у объекта 'str' нет атрибута 'append' в python 2 - PullRequest
0 голосов
/ 20 апреля 2020

Я дам вам мой python код (он довольно базовый c и маленький), и если вы можете сказать мне, где я не прав. Большое спасибо и не ненавижу:)

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'

Ответы [ 3 ]

1 голос
/ 20 апреля 2020

ваша ошибка довольно проста, посмотрите, хотя в начале вашего кода вы объявляете следующие списки:

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

Следующее, что вы делаете, это используете те же самые имена переменных, чтобы захватить ваш ввод :

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

Но вы не добавляете над своими исходными списками, вот как выглядит ваш код:

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

Но nms это не исходный список, ваш оригинальный список называется nm, nms - это строка, которую вы только что прочитали. также ekt, значение, которое вы пытаетесь добавить, не является строкой, которую вы читаете (которая называется ekts), ekt - это список, который вы объявляете в начале вашего кода. Таким образом, вы пытаетесь добавить список к строковому объекту, чего нельзя сделать. То же самое относится и к строкам ниже этой, пожалуйста, перепроверьте имена ваших переменных.

0 голосов
/ 20 апреля 2020

Хорошо, я думаю, что я исправил свой код, он вроде работает на самом деле, посмотрите! Я попытался использовать .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

Я рассмотрю в будущем, используя + =

0 голосов
/ 20 апреля 2020

Когда вы читаете ввод от пользователя, он имеет тип string -

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

nms это строка. После этого вы пытаетесь добавить его nms.append(ekt), но тип строки не имеет добавления. Я думаю, что вы имели в виду nm.append(nms).

...