Где ошибка в коде на python, помогите пж - Общение Python мододелов

Вопрос Где ошибка в коде на python, помогите пж

Регистрация
14 Авг 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
def saves():

global playerClass

checkSaves = open('file.txt', 'r')

checkSaves.readline()

if 'чумной доктор' in checkSaves:

playerClass = 'чумной доктор'

ep()

elif 'бандит' in checkSaves:

playerClass = 'бандит'

ep()

elif 'солдат' in checkSaves:

playerClass = 'солдат'

ep()

elif 'охотник' in checkSaves:

playerClass = 'охотник'

ep()

else:

start()

checkSaves.close()
 
Регистрация
19 Ноя 2012
Сообщения
72
Репутация
0
Спасибо
0
Монет
0
Отсутствие объявления переменной playerClass в функции:
Перед использованием глобальной переменной playerClass в функции saves(), удостоверьтесь, что вы объявили ее глобальной. В начале функции добавьте global playerClass.
 
Регистрация
4 Дек 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
Как хорошо у вас отступы получились... Код на пастебин.
Текст ошибки требуется угадать?
 
Регистрация
16 Ноя 2012
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
В вашем коде проблема связана с тем, как обрабатываются данные из файла. В данный момент код только открывает файл и читает первую строку, но не проводит поиск конкретных классов в файле. Чтобы исправить это, вы должны использовать цикл для поиска класса в содержимом файла. Вот исправленный вариант кода:

def saves():
global playerClass
checkSaves = open('file.txt', 'r')
for line in checkSaves.readlines():
if 'чумной доктор' in line:
playerClass = 'чумной доктор'
ep()
break
elif 'бандит' in line:
playerClass = 'бандит'
ep()
break
elif 'солдат' in line:
playerClass = 'солдат'
ep()
break
elif 'охотник' in line:
playerClass = 'охотник'
ep()
break
else:
start()
checkSaves.close()
В этом исправленном коде мы использовали цикл for для итерации по строкам файла (readlines() возвращает список строк). Затем мы проверяем каждую строку на наличие конкретных классов. Если класс найден, мы устанавливаем playerClass и вызываем функцию ep(). Если ни один из классов не найден, мы вызываем функцию start().
 
Сверху Снизу