Как печатать как printf в python3?

В python 2 я использовал

print "a=%d,b=%d" % (f(x,n),g(x,n)) 

Я пробовал

 print("a=%d,b=%d") % (f(x,n),g(x,n)) 

8 Solutions collect form web for “Как печатать как printf в python3?”

В Python2 print была ключевым словом, в котором была введена инструкция:

 print "Hi" 

В Python3 print – это функция, которая может быть вызвана:

 print ("Hi") 

В обеих версиях % – это оператор, для которого требуется строка в левой части и значение или кортеж значений или объект сопоставления (например, dict ) в правой части.

Итак, ваша линия должна выглядеть так:

 print("a=%d,b=%d" % (f(x,n),g(x,n))) 

Кроме того, рекомендация для Python3 и new заключается в использовании форматирования {} -style вместо форматирования в стиле % :

 print('a={:d}, b={:d}'.format(f(x,n),g(x,n))) 

Самый рекомендуемый способ – использовать метод format . Подробнее об этом читайте здесь.

 a, b = 1, 2 print("a={0},b={1}".format(a, b)) 

Простая функция printf () из Cookbook от O'Reilly's Python .

 import sys def printf(format, *args): sys.stdout.write(format % args) 

Пример вывода:

 i = 7 pi = 3.14159265359 printf("hi there, i=%d, pi=%.2f\n", i, pi) # hi there, i=7, pi=3.14 

Простой пример:

print("foo %d, bar %d" % (1,2))

Проще.

 def printf(format, *values): print(format % values ) 

Затем:

 printf("Hello, this is my name %s and my age %d", "Martin", 20) 

Поскольку ваш % находится вне скобок print(...) , вы пытаетесь вставить переменные в результат вашего вызова print . print(...) возвращает None , так что это не сработает, и вы также уже не печатали свой шаблон, чтобы в это время и во времени путешествия были запрещены законами вселенной, в которой мы живем.

Все, что вы хотите распечатать, включая % и его операнд, должно быть внутри вашего вызова print(...) , чтобы строка могла быть построена до ее печати.

 print( "a=%d,b=%d" % (f(x,n), g(x,n)) ) 

Я добавил несколько лишних пробелов, чтобы сделать их более ясными (хотя они не нужны и обычно не считаются хорошим стилем).

Python 3.6 представил f-строки для встроенной интерполяции. Что еще приятнее, так это расширение синтаксиса, чтобы также позволить спецификаторы формата с интерполяцией. Что-то, над чем я работал, пока я искал это (и наткнулся на этот старый вопрос!):

 print(f'{account:40s} ({ratio:3.2f}) -> AUD {splitAmount}') 

PEP 498 содержит подробную информацию. И … он отсортировал мой любимый peeve с спецификаторами формата в других языках – позволяет спецификациям, которые сами могут быть выражениями! Ура! См. Форматирование спецификаторов .

 print("Name={}, balance={}".format(var-name, var-balance)) 
  • Оптимальный / самый быстрый способ подсчета дат в списке python
  • Почему вы не переключитесь на Python 3.x?
  • Как программа может выбирать между двумя функциями в python?
  • Пока пользовательский ввод петли в диапазоне
  • обертывание текстового файла, чтобы каждая строка содержала не более 80 символов
  • Травление несвязанного метода в Python 3
  • Как отсортировать список с дублирующимися элементами по наибольшему количеству дубликатов вхождениях - Python
  • Как я могу более легко подавить предыдущие исключения, когда я выражу свое собственное исключение в ответ?
  • Python - лучший язык программирования в мире.