Если вы не хотите, from __future__ import print_function
вы можете сделать следующее:
a = 100
b = True
print a if b else "", # Note the comma!
print "see no new line"
Какие отпечатки:
100 see no new line
Если вы не против from __future__ import print_function
или используете Python 3 или более поздней версии :
from __future__ import print_function
a = False
b = 100
print(b if a else "", end = "")
Добавление else - это единственное изменение, которое необходимо внести, чтобы сделать ваш код синтаксически правильным, вам нужно else для условного выражения («в строке, если else блокирует»)
Причина, по которой я не использовал None
или не использовал 0
другие в потоке, заключается в том, что использование None/0
приведет к тому, что программа будет print None
или print 0
в тех случаях, когда b
есть False
.
Если вы хотите прочитать об этой теме, я включил ссылку на примечания к выпуску патча, который эта функция была добавлена в Python.
Вышеприведенный «шаблон» очень похож на шаблон, показанный в PEP 308:
Этот синтаксис может показаться странным и задом наперед; почему условие идет в середине выражения, а не впереди, как в C с? х: у? Решение было проверено путем применения нового синтаксиса к модулям в стандартной библиотеке и проверки читаемого кода. Во многих случаях, когда используется условное выражение, одно значение представляется «общим случаем», а одно значение - «исключительным случаем», которое используется только в более редких случаях, когда условие не выполняется. Условный синтаксис делает этот шаблон немного более очевидным:
content = ((doc + '\ n'), если doc else '')
Так что я думаю, что в целом это разумный подход, но вы не можете спорить с простотой:
if logging: print data