Питон не может найти имя wordKeys как в учебнике "Учим python делая крутые игры"

Недавно начал читать "Учим python делая крутые игры". Всё шло хорошо, пока не добрался до улучшения игры виселица в 9ой главе.

При запуске выдавал две ошибки. Одну удалось устранить.

Весь код в котором как я думаю возникает ошибка ниже.

import random
words = {'Цвета':'красный оранжевый жёлтый зелёный синий голубой фиолетовый белый чёрный коричневый'.split(),
'Фигуры':'квадрат треугольник прямоугольник круг эллипс ромб трапеция параллелограмм пятиугольник шестиугольник восьми угольник'.split(),
'Фрукты':'яблоко апельсин лимон лайм груша мандарин виноград грейпфрут персик банан абрикос манго нектарин'.split(),
'Животные':'аист бабуин баран барсук бык волк зебра кит коза корова кошка кролик крыса лев лиса лось медведь мул мышь норка носорог обезьяна овца олень осел панда пума скунс собака сова тигр тюлень хорек ящерица'.split()}

def getRandomWord(wordDict):
# Эта функция возвращает случайную строку из переданного словаря списков строк, а также ключ.
        # Во-первых, случайным образом выбираем ключ из словаря:
        wordKey = random.choice(list(wordDict.keys()))

        # Во вторых, случайным образом выбираем слово из списка значений ключа в словаре:
        wordIndex = random.randint(0, len(wordDict[wordKey]) - 1)

getRandomWord(words)

print (wordKey)

Ошибка такая:

>>> 
================ RESTART:D:/python_l/u_py/hangman_2_test.py================
Traceback (most recent call last):
  File "D:/python_l/u_py/hangman_2_test.py", line 17, in <module>
    print (wordKey)
NameError: name 'wordKey' is not defined

P.s. Я новичок уровень которого измеряется отрицательными числами) (не баньте плиз)


Ответы (2 шт):

Автор решения: S. Nick

Попробуйте так

import random


words = {'Цвета':'красный оранжевый жёлтый зелёный синий голубой фиолетовый белый чёрный коричневый'.split(),
'Фигуры':'квадрат треугольник прямоугольник круг эллипс ромб трапеция параллелограмм пятиугольник шестиугольник восьми угольник'.split(),
'Фрукты':'яблоко апельсин лимон лайм груша мандарин виноград грейпфрут персик банан абрикос манго нектарин'.split(),
'Животные':'аист бабуин баран барсук бык волк зебра кит коза корова кошка кролик крыса лев лиса лось медведь мул мышь норка носорог обезьяна овца олень осел панда пума скунс собака сова тигр тюлень хорек ящерица'.split()}

def getRandomWord(wordDict):
        # Эта функция возвращает случайную строку из переданного словаря 
        # списков строк, а также ключ.
        # Во-первых, случайным образом выбираем ключ из словаря:
        wordKey = random.choice(list(wordDict.keys()))

        # Во вторых, случайным образом выбираем слово из списка значений ключа в словаре:
        wordIndex = random.randint(0, len(wordDict[wordKey]) - 1)
        
        return wordKey                                       # +++ 

wordKey = getRandomWord(words)                               # +++ wordKey =

print (wordKey)
→ Ссылка
Автор решения: CrazyElf

Наверное, имелось в виду что-то такое. Результат работы функции нужно либо напечатать сразу, либо, что лучше, вернуть в вызывающий код, а оттуда уже напечатать:

import random
words = {'Цвета':'красный оранжевый жёлтый зелёный синий голубой фиолетовый белый чёрный коричневый'.split(),
'Фигуры':'квадрат треугольник прямоугольник круг эллипс ромб трапеция параллелограмм пятиугольник шестиугольник восьми угольник'.split(),
'Фрукты':'яблоко апельсин лимон лайм груша мандарин виноград грейпфрут персик банан абрикос манго нектарин'.split(),
'Животные':'аист бабуин баран барсук бык волк зебра кит коза корова кошка кролик крыса лев лиса лось медведь мул мышь норка носорог обезьяна овца олень осел панда пума скунс собака сова тигр тюлень хорек ящерица'.split()}

def getRandomWord(wordDict):
# Эта функция возвращает случайную строку из переданного словаря списков строк, а также ключ.
        # Во-первых, случайным образом выбираем ключ из словаря:
        wordKey = random.choice(list(wordDict.keys()))

        # Во вторых, случайным образом выбираем слово из списка значений ключа в словаре:
        wordIndex = random.randint(0, len(wordDict[wordKey]) - 1)

        return wordKey, wordDict[wordKey][wordIndex]

wordKey, word = getRandomWord(words)

print (wordKey, word)

Пример вывода (выбор ключа и слова случаен, поэтому и пример):

Фрукты грейпфрут
→ Ссылка