Ваша проблема в том, что getch()
возвращает байт, а не строку. Если вы нажмете a
, значение choice
будет строкой b'a'
, которая отличается от строки 'a'
. Примите во внимание следующее:
>>> choice = b'a'
>>> choice == 'a'
False
>>> choice.decode() == 'a'
True
И ваш экран остается пустым, потому что ни одно из условий if
не может быть истинным, и у вас нет всеобъемлющего предложения else:
. Вы могли бы обнаружить это для себя, просто распечатав значение choice
.
Измените ваш тест с
if choice =='a':
на
if choice.decode() == 'a':
(и отбросьте ненужные парены из ваших if
тестов).
В Python 2 ваш исходный код работал бы так, как вы ожидаете.