If and Inline, if, what are the advantages and disadvantages?

I'm a little curious to know the difference between if and inline if, in Python. Which one is better?

Is there any reason to use inline if, in addition to being shorter?

Also, is there something wrong with this statement? I get a syntax error:SyntaxError: can't assign to conditional expression

a = a*2 if b == 2 else a = a/w
+4
source share
3 answers

The advantage of the inline expression ifis that it is an expression, which means you can use it in other name list expressions, lambda functions, etc.

The inline expression ifalso has the disadvantage of being an expression, which means that you cannot use any statements in it.


, : a = a/w - , . :

if b == 2:
    a = a*2
else:
    a = a/w

, - a , :

a = a*2 if b==2 else a/w

, :

odd_numbers = [number if number%2 else number+1 for number in numbers]

if - , :

def oddify(number):
    if number%2:
        return number
    else:
        return number+1
odd_numbers = [oddify(number) for number in numbers]

, if ( ), if ( ):

odd_numbers = [number for number in numbers if number % 2]
+8

:

result = X if C else Y

:

result = X if C else result = Y

, result = . , expression. , , RHS , /, lambdas, . - , print.

Fo, . , , , 0. :

result = [x if x % 2 == 0 else 0 for x in li]
+5

Inline if , .

:

a = a*2 if b == 2 else a/w

, , , , Programmers StackExchange.

+2