Я очень новичок в программировании (извините, если я не представляю эту проблему правильно). Это из LPTHW Упражнение 36:NameError: глобальное имя «stealth» не определено
Моя ошибка:
Traceback (most recent call last):
File "ex36.py", line 329, in <module>
start()
File "ex36.py", line 149, in start
arena()
File "ex36.py", line 161, in arena
if stealth == True:
NameError: global name 'stealth' is not defined
Мой Допущение: Я подумал: «стелс» было определено в предыдущей функции, начать(), но определение не переносится на арену(). Как это исправить, и почему «скрытность» от одной функции не переносится на другую функцию?
(игра на основе текста в процессе) Мой код:
from sys import argv
script, enemy = argv
...
def start():
print """ Choose a skill to train in
"""
stealth = False
gun = False
knife = False
heal = False
skill = raw_input("> ")
if 'gun' in skill:
print """
"""
gun = True
skill = gun
...
else:
dead()
arena()
def arena():
print """ You enter the arena. Will you:
hide, hunt for food, or search for water?
"""
path = raw_input("> ")
if "hide" in path:
print """ Hide
"""
if stealth == True:
print """ Witness
"""
witness()
else:
battle()
...
else:
print """ Dead
"""
dead()
start()
Все советы очень ценится. Спасибо за помощь.
Может быть переменная настолько незаметным, что Python не может видеть его. – BrenBarn
@BrenBarn, который или его область действия находится только в 'start' и недоступны с' arena' ... –