Python Выражение, которое возвращает значение, если условие выполнено, но в противном случае продолжает цикл for - PullRequest
0 голосов
/ 16 июня 2020

Это будет звучать как глупая и ужасная идея, и, вероятно, потому, что это так. Есть ли способ в Python (желательно однострочное) создать выражение , которое разрешается в значение, если условие выполняется, но если условие не выполняется, оно вместо этого выполнит оператор (например, как continue или вызов метода)?

Пример использования ниже (хотя этот код на самом деле не работает):

def print_name_if_even(n):
    print(f"{ name if n % 2 == 0 else print("Uneven!") }")

Я знаю, что это, вероятно, плохая идея, но Я пытаюсь втиснуть определение функции в как можно меньше строк, поэтому я хочу избежать многострочных условных операторов.

1 Ответ

0 голосов
/ 16 июня 2020

Вы имеете в виду что-то вроде этого?

def f():
    # <your statement>
    return 'yourstatement'

print ([f(), 'Even!'][False])

Замените False любым условием, которое оценивается как True (= 1) или False (= 0). (Это весело). Например:

def f():
    # <your statement>
    return 'yourstatement'
n=2
print ([f(), 'Even!'][n%2 == 0])
...