Si vous ne le souhaitez pas, from __future__ import print_function
vous pouvez procéder comme suit:
a = 100
b = True
print a if b else "", # Note the comma!
print "see no new line"
Qui imprime:
100 see no new line
Si vous n'êtes pas opposé à from __future__ import print_function
ou utilisez python 3 ou version ultérieure:
from __future__ import print_function
a = False
b = 100
print(b if a else "", end = "")
L'ajout de else est la seule modification que vous devez apporter pour rendre votre code syntaxiquement correct, vous avez besoin de else pour l'expression conditionnelle (le "en ligne si else bloque")
La raison pour laquelle je ne l' ai pas utilisé None
ou 0
comme d' autres dans le fil ont utilisé, parce que l' utilisation None/0
causerait le programme print None
ou print 0
dans les cas où b
est False
.
Si vous souhaitez en savoir plus sur ce sujet, j'ai inclus un lien vers les notes de publication du correctif que cette fonctionnalité a été ajoutée à Python.
Le «motif» ci-dessus est très similaire au motif montré dans PEP 308:
Cette syntaxe peut sembler étrange et inversée; pourquoi la condition va-t-elle au milieu de l'expression, et non à l'avant comme dans le c de c? x: y? La décision a été vérifiée en appliquant la nouvelle syntaxe aux modules de la bibliothèque standard et en voyant comment le code résultant se lisait. Dans de nombreux cas où une expression conditionnelle est utilisée, une valeur semble être le «cas commun» et une valeur est un «cas exceptionnel», utilisée uniquement dans des cas plus rares lorsque la condition n'est pas remplie. La syntaxe conditionnelle rend ce modèle un peu plus évident:
contents = ((doc + '\ n') si doc else '')
Je pense donc que dans l'ensemble, c'est une façon raisonnable de l'approcher, mais vous ne pouvez pas contester la simplicité de:
if logging: print data