Se você não quiser, from __future__ import print_function
faça o seguinte:
a = 100
b = True
print a if b else "", # Note the comma!
print "see no new line"
Que imprime:
100 see no new line
Se você não é averso from __future__ import print_function
ou está usando o python 3 ou posterior:
from __future__ import print_function
a = False
b = 100
print(b if a else "", end = "")
Adicionar o else é a única alteração que você precisa fazer para tornar seu código sintaticamente correto. Você precisa do else para a expressão condicional (o "in line if else blocks")
A razão de eu não usar None
ou 0
como outros no segmento têm usado, é porque usar None/0
faria com que o programa para print None
ou print 0
nos casos em que b
é False
.
Se você quiser ler sobre este tópico, incluí um link para as notas de versão do patch que esse recurso foi adicionado ao Python.
O 'padrão' acima é muito semelhante ao padrão mostrado no PEP 308:
Essa sintaxe pode parecer estranha e inversa; por que a condição vai no meio da expressão, e não na frente, como nos c de C? x: y? A decisão foi verificada aplicando a nova sintaxe aos módulos da biblioteca padrão e vendo como o código resultante era lido. Em muitos casos em que uma expressão condicional é usada, um valor parece ser o 'caso comum' e um valor é um 'caso excepcional', usado apenas em ocasiões mais raras quando a condição não é atendida. A sintaxe condicional torna esse padrão um pouco mais óbvio:
conteúdo = ((doc + '\ n') se outro documento '')
Então, no geral, essa é uma maneira razoável de abordá-la, mas você não pode argumentar com a simplicidade de:
if logging: print data