Сократить оператор if, чье утверждение является обратным - PullRequest
2 голосов
/ 11 октября 2019

У меня следующая ситуация:

string = "abc"
if (string[1] == "b" and string[2] == "c") or (string[1] == "c" and string[2] == "b"):
    print("ERROR")

Есть ли решение, чтобы сократить это питонским способом? Я вижу, что (string[1] == "b" and string[2] == "c") является обратным утверждением (string[1] == "c" and string[2] == "b"). Может быть, я могу это использовать?

1 Ответ

6 голосов
/ 11 октября 2019

Есть ли решение сократить это питонским способом?

Да, вот оно:

string = "abc"
if (string[1:3] == "bc") or (string[1:3] == "cb"):
    print("ERROR")

Если вы хотите болеекороткий путь - if string[1:3] in ('bc', 'cb'):

...