0

Хочу сделать код более лаконичным.

    if x == var1:
        return 1
    elif x == var2:
        return 2
    elif x == var3:
        return 3
    elif x == var4:
        return 4
    else:
        return 0
Kromster
  • 13,809
Incover
  • 119

1 Answers1

2

По сути вы можете использовать словари вместо этого. Использование словарей действительно является распространённым решением для подобных задач. А так советую взглянуть как можно реализовывать конструкцию switch-case на python.

Есть ли в Python оператор switch case?

https://www.kverner.ru/kak-realizovat-operator-switch-case-v-python/

def f(x):
    var1 = '.';
    var2 = '..';
    var3 = '...';
    var4 = '....';
data = {
    var1: 1,
    var2: 2,
    var3: 3,
    var4: 4,
}

defaultValue = 0

try:
    return data[x]
except KeyError as e:
    return defaultValue

print(f('.')) # 1 print(f('..')) # 2 print(f('...')) # 3 print(f('....')) # 4 print(f('1231')) # 0

Ragman
  • 46
  • 4
    Вместо последних 4-х строк в функции можно написать просто return data.get(x, defaultValue). – Mikhail Murugov Jun 29 '20 at 03:38