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]