Почему функция возвращает None?

Добрый день.
Написал функцию которая просит игрока ввсести Х или О
Если игрок вводит Х или О с первого раза, то функция возвращает эту букву корректно. Но если ввести другую букву, а потом правильную, то функция возвращает None хотя print выводит букву корректно.
Подскажите где ошибка.
def player_input() -> str:
    choice_of_symbol = input("Выберите Х или О \n").upper()
    if choice_of_symbol == "X" or choice_of_symbol == "O":
        print(choice_of_symbol)
        return choice_of_symbol
    else:
        player_input()


symbol = player_input()
print(symbol)
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Потому что у тебя в рекурсивном кейсе отсутствует return Когда функция не имеет return python возвращает None
...
else:
    return player_input()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час