#python #variables #return #return-value #local
#python #переменные #Возврат #возвращаемое значение #Местные новости
Вопрос:
Я пытаюсь создать свою собственную версию hangman. Я создал словарь с ключами в качестве контекстных подсказок, а значения представляют собой список слов. Я создал функцию, в которой я могу найти случайное значение из списка значений случайного ключа, но когда я пытаюсь использовать его вне функции, я получаю сообщение об ошибке, в котором говорится, что оно не определено даже после того, как я его вернул. Что я делаю не так?
Вот мой код:
import random
def random_phrase():
"""
This function finds a random key (which is the type of phrase to be found) from the dictionary called categories and a random phrase from the list that corresponds to that key.
"""
clue_phrase = random.choice(list(categories.keys()))
print (clue_phrase)
word_phrase = random.choice(categories[clue_phrase])
return word_phrase
random_phrase()
def phrase_of_blanks():
blanks = ' '
for i in word_phrase:
if i == ' ':
blanks = ' '
else:
blanks = '_' ' '
return blanks
phrase_of_blanks()
Комментарии:
1. Вы не можете использовать локальную переменную за пределами ее области видимости (если только она не захвачена как часть охватывающей области видимости в замыкании, но пока это неважно). Главное, что нужно понять, это то, что функции не возвращают переменные . Функции возвращают объекты / значения . Вы должны зафиксировать это возвращаемое значение в вызывающем, например, с другой переменной
foo = bar()
Ответ №1:
Удалите строку
random_phrase()
Поместите
for i in random_phrase():
#in place of
for i in word_phrase:
Ответ №2:
Вы не сохраняете возвращаемое значение в переменной,
Изменить
random_phrase()
Для
word_phrase = random_phrase()