Нагуглил про то, что switch case в питоне нет, но можно сделать примерно так:
def test(x):
return {
1: "1",
2: "2",
3: "3"
}.get(x)
Вроде красиво, позволяет избавиться от кучи if'ов.
Но вот в чем проблема. Пишут, что второй аргумент в get() - это то, что будет возвращено, если в словаре нет нужного значения. Я же решил в этом случае вызывать функцию еще раз (если введено что-то другое, там идет ввод с input). Тогда во всех случаях функция будет вызываться еще раз. Если же ввести
lambda: test(x)
<function proxy_type.<locals>.<lambda> at 0x057DD9C0>
Так вот, вопрос такой: возможно ли реализовать такое и как правильно?
UPD: пользуясь случаем, спрошу: как можно вывести постоянно изменяющуюся переменную, чтобы она выводилась на одной строке, а не каждый раз на новой?