Я уверен, что есть очень простой ответ на этот вопрос, но я не могу найти его после поиска на некоторое время.Использование условий «или» in if
prefixes = "JKLMNOPQ"
suffix = "ack"
for letter in prefixes:
if letter == "Q" or letter == "O":
print letter + "u" + suffix
else:
print letter + suffix
Приведенный выше код работает отлично, состояние на если заявление кажется немного многословно, так что я пробовал:
if letter == "Q" or "O":
, которая короче, но не работает. Я решил, что это не сработает, потому что «O» - это логическое выражение, которое всегда будет True и что оно не рассматривает ничего с левой стороны «или».
Я пытался ставить скобки вокруг него так:
if letter == ("Q" or "O"):
но соответствует только Q, а не О.
Есть ли сокращенный способ получить код, чтобы работать или я должен использовать это длинный путь, который работает на меня?
'("Q", или "О")' является то же, что и 'Q' – onemach
Языки программирования - это * формальные языки * со строго определенным значением любого синтаксиса. Обычно вы не можете просто решить, что данное выражение выглядит «длинным ветром» и попробуйте сократить его, как и на английском. ** ** подходит для просмотра кода, который вы пишете, и задаетесь вопросом, существуют ли более короткие или более четкие способы его написания, особенно во время обучения. Но вам нужно сделать это с пониманием *, а не просто попробовать случайные варианты и посмотреть, работают ли они. Худший результат, который вы можете получить, заключается в том, что он работает **, потому что он будет работать случайно и может быть неудачным в следующий раз! – Ben