Нашли свою проблему. Строка 58 - это то, что вызывает у вас проблемы. Здесь есть:
chances, chairs, insurance, km, tire = toyota()
Ничего плохого в этом, но когда мы смотрим на toyota()
сек оператора возврата, есть проблема. Вот toyota()
сек оператор возврата:
return chances, Tire, Km, Insurance, chairs
Проблема возникает из-за того, что порядок имеет значение, когда возвращающиеся несколько значений в Python, и порядок, в котором вы возвращаетесь и порядок, в котором вы назначите не совпасть.
Здесь вы возвращаете значение Tire
и присваиваете его переменной chairs
. Позже, когда вы пытаетесь использовать chairs
в функции Banker
, вы не работаете с объектом, который, как вы думаете.
gold = open(chairs[warrior-1], "strength")
Здесь работает type(chairs)
вернется File
, не list
, потому что toyota()
сек значения были возвращены/назначены в неправильном порядке. File
s не может быть проиндексирован, и это то, что заставляет вашу программу выкидывать ошибку.
Можете ли вы опубликовать весь свой код на [Pastebin] (http://pastebin.com/) и отредактировать свое сообщение, чтобы включить ссылку, пожалуйста? –
Вы переопределили встроенную функцию 'open'? – Aesthete
Спасибо, Джеймс, я просто сделал это, и я не уверен Esthete. –