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

Как можно улучшить функцию, чтобы она возвращала выбранную игроком букву (X или O) даже в случае, если сначала игрок ввел неверную букву, а затем правильную? Сейчас функция возвращает None, если второй ввод был верным. Пожалуйста, помогите найти ошибку.
  • 30 апреля 2024 г. 14:20
Ответы на вопрос 2
Возможно, функция возвращает значение None из-за того, что не происходит возврат значения (return) после второго ввода пользователя, когда введена правильная буква.

Для того чтобы функция возвращала выбранную игроком букву (X или O) даже при вводе неправильной буквы, можно использовать цикл, который будет продолжаться до тех пор, пока игрок не введет правильную букву. Например:

```python
def choose_letter():
    while True:
        letter = input("Выберите букву X или O: ")
        if letter.upper() in ['X', 'O']:
            return letter.upper()
        else:
            print("Неверный ввод. Пожалуйста, введите букву X или O.")
```

В данном случае цикл будет продолжаться до тех пор, пока игрок не введет корректное значение ('X' или 'O'), после чего функция вернет выбранную букву.
Потому что у тебя в рекурсивном кейсе отсутствует return Когда функция не имеет return python возвращает None 
...
else:
    return player_input()
Похожие вопросы