Si no quieres from __future__ import print_function
puedes hacer lo siguiente:
a = 100
b = True
print a if b else "", # Note the comma!
print "see no new line"
Que imprime:
100 see no new line
Si no te molesta from __future__ import print_function
o estás usando Python 3 o posterior:
from __future__ import print_function
a = False
b = 100
print(b if a else "", end = "")
Agregar el else es el único cambio que necesita hacer para que su código sea sintácticamente correcto, necesita el else para la expresión condicional (el "en línea si otro bloquea")
La razón por la que no utilicé None
o me 0
gustaron otras personas en el hilo es porque el uso None/0
causaría que el programa lo haga print None
o print 0
en los casos en que se b
encuentre False
.
Si desea leer sobre este tema, he incluido un enlace a las notas de la versión del parche que esta característica se agregó a Python.
El 'patrón' anterior es muy similar al patrón que se muestra en PEP 308:
Esta sintaxis puede parecer extraña y al revés; ¿por qué la condición va en el medio de la expresión, y no en el frente como en la c de C? x: y? La decisión se verificó aplicando la nueva sintaxis a los módulos en la biblioteca estándar y viendo cómo se lee el código resultante. En muchos casos donde se usa una expresión condicional, un valor parece ser el 'caso común' y un valor es un 'caso excepcional', usado solo en ocasiones más raras cuando no se cumple la condición. La sintaxis condicional hace que este patrón sea un poco más obvio:
contenido = ((doc + '\ n') if doc else '')
Así que, en general, esta es una forma razonable de abordarlo, pero no se puede discutir con la simplicidad de:
if logging: print data