Якщо ви не хочете, 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 = "")
Додавання іншого є єдиною зміною, яку потрібно внести для того, щоб ваш код був синтаксично правильним, вам потрібно інше для умовного виразу ("рядок, якщо інакше блокує")
Причина , чому я не використовував None
або 0
як інші в потоці використовували, це тому , що використання None/0
може викликати програму print None
або print 0
в тих випадках , коли b
є False
.
Якщо ви хочете почитати про цю тему, я включив посилання на нотатки до випуску патча, що ця функція була додана до Python.
Наведений вище 'шаблон' дуже схожий на візерунок, показаний у PEP 308:
Цей синтаксис може здатися дивним і зворотним; чому умова йде в середині виразу, а не спереду, як у C's? х: у? Рішення було перевірено, застосувавши новий синтаксис до модулів у стандартній бібліотеці і побачивши, як читається отриманий код. У багатьох випадках, коли використовується умовний вираз, одне значення здається «загальним випадком», а одне значення - «винятковим випадком», яке використовується лише в рідкісних випадках, коли умова не виконується. Умовний синтаксис робить цей шаблон трохи більш очевидним:
content = ((doc + '\ n'), якщо doc else '')
Тому я думаю, що в цілому це розумний спосіб його схвалення, але ви не можете сперечатися з простотою:
if logging: print data