name = 'John'
#basic method
print('Hello, his name is ' + name)
#.format method
print('Hello, his name is {}'.format(name))
#f-string literal method
print(f'Hello, his name is {name}')
Все являются жизнеспособными способами конкатенировать и выводить одно и то же, но почему я должен выбирать один за другим?
# 1 не будет работать, если name
не является строкой.
# 2 отлично подходит для любой версии, но немного громоздко печатается. Как правило, это лучшее для совместимости в версиях python.
# 3 Если лучший вариант с точки зрения удобочитаемости (и производительности). Но он работает только на python3. 6+, поэтому не очень хорошая идея, если вы хотите, чтобы ваш код был обратно совместим.
Там также # 4, форматирование старого стиля ala% s,% d и т.д., str.format
теперь обескуражены в пользу str.format
.