ошибка при попытке использовать ключевое слово pass в одной строке, если оператор

что это работает:

if 5 % 2 == 0: print "no remainder" else: pass 

но не это:

 print "no remainder" if 5% 2 == 0 else pass SyntaxError: invalid syntax 

Последнее не является выражением if , скорее выражением (я имею в виду, print – это утверждение, а остальное интерпретируется как выражение, которое не выполняется). Выражения имеют значения. pass не делает, потому что это утверждение.

Вы можете видеть это как два утверждения ( print or pass ), но интерпретатор видит это по-другому:

 expr = "no remainder" if 5% 2 == 0 else pass print expr 

и первая строка проблематична, потому что она смешивает выражение и оператор.

if оператор if – это другое дело:

 if 5 % 2 == 0: print "no remainder" 

это можно назвать однострочным оператором if .

PS Тернарные выражения называются условными выражениями в официальных документах .

Тройное выражение использует синтаксис, который вы пытались использовать, но ему нужны два выражения и условие (также выражение):

 expr1 if cond else expr2 

и он принимает значение expr1 если bool(cond) == True и expr2 противном случае.