В Python 2 я использовал:
print "a=%d,b=%d" % (f(x,n),g(x,n))
Я пробовал:
print("a=%d,b=%d") % (f(x,n),g(x,n))
python
string
python-3.x
Майк Л
источник
источник
%
всегда был строковым оператором, не связанным сprint
оператором. Вы можете, например, создать строку с помощьюs="a=%d,b=%d"%(f(x,n),g(x,n))
, а затем распечатать эту строку с помощьюprint s
.Ответы:
В Python2
print
было ключевое слово, которое вводило оператор:В Python3
print
это функция, которая может быть вызвана:В обеих версиях
%
это оператор, который требует строки слева и значения или кортежа значений или объекта сопоставления (напримерdict
) справа.Итак, ваша строка должна выглядеть так:
Кроме того, для Python3 и новее рекомендуется использовать
{}
форматирование -style вместо%
форматирования -style:Python 3.6 представляет еще одну парадигму форматирования строк : f-строки .
источник
print('a={first:4.2f}, b={second:03d}'.format(first=f(x,n),second=g(x,n)))
где в этом примере показано, как можно использовать модификаторы стиля printf и по- прежнему использовать ключевые слова.Самый рекомендуемый способ - использовать
format
метод. Подробнее об этом здесьисточник
Простая функция printf () из Поваренной книги Python О'Рейли .
Пример вывода:
источник
PRINT
иFORMAT
...? Назад во времени 60+ лет назад во времена FORTRAN :)Python 3.6 представил f-строки для встроенной интерполяции. Что еще приятнее, так это то, что он расширил синтаксис, чтобы также разрешить спецификаторы формата с интерполяцией. Что-то, над чем я работал, пока гуглил (и натолкнулся на этот старый вопрос!):
У PEP 498 есть подробности. И ... он отсортировал мою любимую мозоль с помощью спецификаторов формата на других языках - позволяет спецификаторам, которые сами могут быть выражениями! Ура! См .: Спецификаторы формата .
источник
Простой пример:
print("foo %d, bar %d" % (1,2))
источник
Более простой.
Затем:
источник
Поскольку ваш
%
находится за пределамиprint(...)
круглых скобок, вы пытаетесь вставить свои переменные в результат вашегоprint
вызова.print(...)
возвращаетсяNone
, так что это не сработает, и есть небольшая проблема, что вы уже напечатали свой шаблон к этому времени, а путешествия во времени запрещены законами вселенной, в которой мы живем.Все, что вы хотите напечатать, включая
%
и его операнд, должно быть внутри вашегоprint(...)
вызова, чтобы строку можно было построить до ее печати.Я добавил несколько дополнительных пробелов, чтобы было понятнее (хотя они не нужны и обычно не считаются хорошим стилем).
источник
Другими словами, printf отсутствует в python ... Я удивлен! Лучший код
Из-за этого форма позволяет не печатать \ n. Все остальные нет. Вот почему печать - плохой оператор. А еще нужно писать аргументы в специальной форме. В функции выше недостатков нет. Это стандартная обычная форма функции printf.
источник
источник