Jeśli nie chcesz from __future__ import print_function
, możesz wykonać następujące czynności:
a = 100
b = True
print a if b else "", # Note the comma!
print "see no new line"
Które wydruki:
100 see no new line
Jeśli nie jesteś uśpiony from __future__ import print_function
lub używasz Pythona 3 lub nowszego:
from __future__ import print_function
a = False
b = 100
print(b if a else "", end = "")
Dodanie else jest jedyną zmianą, którą musisz wprowadzić, aby kod był poprawny pod względem składniowym, potrzebujesz else dla wyrażenia warunkowego („w linii, jeśli inaczej blokuje”)
Powodem, dla którego nie użyłem None
lub nie 0
lubiłem innych w tym wątku, jest to, że użycie None/0
spowoduje, że program się pojawi print None
lub print 0
w przypadkach, w których b
jest False
.
Jeśli chcesz przeczytać o tym temacie, zamieściłem link do informacji o wersji łatki, że ta funkcja została dodana do Pythona.
„Wzór” powyżej jest bardzo podobny do wzoru pokazanego w PEP 308:
Ta składnia może wydawać się dziwna i wstecz; dlaczego warunek jest w środku wyrażenia, a nie z przodu, jak w C? x: y? Decyzja została sprawdzona przez zastosowanie nowej składni do modułów w bibliotece standardowej i sprawdzenie, jak odczytany jest wynikowy kod. W wielu przypadkach, w których stosuje się wyrażenie warunkowe, jedna wartość wydaje się być „zwykłym przypadkiem”, a jedna wartość jest „wyjątkowym przypadkiem”, używanym tylko w rzadszych przypadkach, gdy warunek nie jest spełniony. Składnia warunkowa czyni ten wzorzec nieco bardziej oczywistym:
content = ((doc + '\ n') if doc else '')
Myślę więc, że ogólnie jest to rozsądny sposób na zbliżenie, ale nie można kłócić się z prostotą:
if logging: print data