AttributeError: у объекта 'str' нет атрибута 'append' ... работает для инструктора - PullRequest
0 голосов
/ 04 октября 2019

Я посмотрел другой пост об этой же проблеме и не могу найти ответ. Мой код точно такой же, как и в онлайн-классе (оба ниже, но я сократил каталоги). Почему это работает для инструктора, а не для меня?


Ниже мой код:

from matplotlib import pyplot

data = open("lifeexpectanciesusa.txt", "r").readlines()

dates = [ ]

malelife = [ ]
femalelife = [ ]

for line in data:
    date, malelife, femalelife = line.split(",")
    dates.append(date)
    malelife.append(malelife)
    femalelife.append(femalelife)

pyplot.plot(dates, malelife,"bo-", label="Men")
pyplot.plot(dates, femalelife, "mo-", label="Female")

pyplot.legend(loc="upper left")
pyplot.xlabel("Year")
pyplot.ylabel("Age")
pyplot.title("Life Expectancies for men and woman in the USA over time")

pyplot.show()

Ниже указано, что инструктор имеет: Код инструктора


Я получаю сообщение об ошибке:

pyplot.show()
Traceback (most recent call last):

File "<ipython-input-56-0283726
068cb>", line 12, in <module>
malelife.append(malelife)

AttributeError: 'str' object has no attribute 'append'

1 Ответ

0 голосов
/ 04 октября 2019

Вы не можете иметь две переменные с одинаковым именем в одной и той же области видимости. Либо malelife - это список, либо это строка;это не может быть одновременно "John" и []. Вы хотите добавить строку malelife в список malelife;но на самом деле есть только один malelife, и в то время это строка. Переименуйте один из них (аналогично для femalelife), и проблема исчезнет.

Обратите внимание, что у инструктора были разные имена переменных;две версии не такие же, как вы утверждаете. Ваше «укорочение» - это проблема. Если одна версия работает, а другая - нет, вам следует посмотреть, что вы изменили, чтобы найти проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...