En Python 2 usé:
print "a=%d,b=%d" % (f(x,n),g(x,n))
He intentado:
print("a=%d,b=%d") % (f(x,n),g(x,n))
python
string
python-3.x
Mike L
fuente
fuente
%
siempre ha sido un operador de cadena, no relacionado con laprint
declaración. Podría, por ejemplo, crear una cadena cons="a=%d,b=%d"%(f(x,n),g(x,n))
, luego imprimir esa cadena conprint s
.Respuestas:
En Python2,
print
fue una palabra clave que introdujo una declaración:En Python3,
print
es una función que se puede invocar:En ambas versiones,
%
es un operador que requiere una cadena en el lado izquierdo y un valor o una tupla de valores o un objeto de mapeo (comodict
) en el lado derecho.Entonces, tu línea debería verse así:
Además, la recomendación para Python3 y más reciente es usar el
{}
formato de%
estilo en lugar del formato de estilo:Python 3.6 introduce otro paradigma de formato de cadena: f-strings .
fuente
print('a={first:4.2f}, b={second:03d}'.format(first=f(x,n),second=g(x,n)))
donde este ejemplo muestra cómo puede usar los modificadores de estilo printf y aún usar palabras clave.La forma más recomendada de hacerlo es usar el
format
método. Lea más sobre esto aquífuente
Función simple printf () del libro de cocina Python de O'Reilly .
Salida de ejemplo:
fuente
PRINT
yFORMAT
...? En el tiempo, más de 60 años hasta los días de FORTRAN :)Python 3.6 introdujo cadenas f para la interpolación en línea. Lo que es aún mejor es que extendió la sintaxis para permitir también especificadores de formato con interpolación. Algo en lo que he estado trabajando mientras busqué en Google (¡y encontré esta vieja pregunta!):
PEP 498 tiene los detalles. Y ... clasificó mi motivo favorito con especificadores de formato en otros idiomas: permite especificadores que pueden ser expresiones. ¡Hurra! Ver: Especificadores de formato .
fuente
Ejemplo simple:
print("foo %d, bar %d" % (1,2))
fuente
Una más simple
Luego:
fuente
Debido a que
%
está fuera delprint(...)
paréntesis, está intentando insertar sus variables en el resultado de suprint
llamada.print(...)
regresaNone
, por lo que esto no funcionará, y también existe la pequeña cuestión de que ya haya impreso su plantilla en este tiempo y el viaje en el tiempo está prohibido por las leyes del universo que habitamos.Todo lo que desea imprimir, incluido el
%
y su operando, debe estar dentro de suprint(...)
llamada, para que la cadena se pueda construir antes de que se imprima.He agregado algunos espacios adicionales para hacerlo más claro (aunque no son necesarios y generalmente no se consideran buen estilo).
fuente
Otras palabras printf ausentes en python ... ¡Estoy sorprendido! El mejor código es
Debido a este formulario, permite no imprimir \ n. Todos los demás no. Es por eso que la impresión es un mal operador. Y también necesitas escribir argumentos en forma especial. No hay desventajas en la función anterior. Es una forma habitual estándar de la función printf.
fuente
fuente