@ShagolChannel

Можно ли в зависимости от содержания строки изменять вызываемые функции?

Не смогу скорее всего корректно описать что хочу, но попробую

def num(Number):
   if Number == 1:
       print("Hi")
    elif Number == 2:
       print("hello")
    elif Number == 1 2 3;
        print("Hi hello nice" )
    elif Number == 1-3:
        print("Hi-nice")


Можно ли как-то оптимизировать такой код, чтобы не было много условий и возможно ли вообще такой код реализовать?

Возможно ли такое реализовать,
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ответы на вопрос 2
@twistfire92
Python backend developer
Вообще такие вещи делаются через словарь.

Если хотите просто сделать шаблонную строку, то можете использовать замену через replace, обойдя все пары ключ-значение вашего словаря.

d = {1: 'Hi', 2: 'hello', 3: 'nice'}

def foo(s):
    for key, value in d.items():
        s = s.replace(str(key), value)
    print(s)

foo('1')
foo('2')
foo('1 2 3')
foo('1-3')


только не напутайте с типами данных.
Ответ написан
Комментировать
MinTnt
@MinTnt
d = {"1": 'Hi', "2": 'hello', "3": 'nice'}
trans_table = str.maketrans(d)

s = "1 2 3"

print(s.translate(trans_table))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы