Я пытаюсь сделать игру палачом и по какой-то причине даже после объявления переменной как глобальной (даже если в консоли она отмечена, она может быть напечатана после вызова и функции, и, как и ожидалось, проблем не было. Код приведен ниже,
import random
def wordRandomizer(categorie):
randomNum = random.randint(0, len(categorie))
#Picks a random number to pick a word from the list
choosenWord = categorie[randomNum]
#actually chooses the word
global hidden_word
#Globals the variable that I have the problem with
hidden_word = "_" * len(choosenWord)
return choosenWord
def wordFiller(word,letter):
hidden_wordTemp = hidden_word.split()
for i in range(len(word)):
if word[i] == letter:
hidden_wordTemp[i] = letter
else:
pass
hidden_word = ''.join(hidden_wordTemp)
print(hidden_word)
wordFiller(wordRandomizer(['book', 'bottle', 'door']), 'o')
Ниже выводится ошибка:
Traceback (most recent call last):
File "C:\Users\amitk\OneDrive\School\2018-2019 ט\Cyber\Hangman.py", line 295, in <module>
wordFiller(wordRandomizer(['book', 'bottle', 'door']), 'o')
File "C:\Users\amitk\OneDrive\School\2018-2019 ט\Cyber\Hangman.py", line 286, in wordFiller
hidden_wordTemp = hidden_word.split()
UnboundLocalError: local variable 'hidden_word' referenced before assignment
По некоторым причинам он говорит, что на локальную переменную ссылались до назначения, даже если она была назначена и «глобальна»