Python Language
La función de impresión
Buscar..
Fundamentos de impresión
En Python 3 y superior, print
es una función en lugar de una palabra clave.
print('hello world!')
# out: hello world!
foo = 1
bar = 'bar'
baz = 3.14
print(foo)
# out: 1
print(bar)
# out: bar
print(baz)
# out: 3.14
También puede pasar una serie de parámetros para print
:
print(foo, bar, baz)
# out: 1 bar 3.14
Otra forma de print
múltiples parámetros es usando un +
print(str(foo) + " " + bar + " " + str(baz))
# out: 1 bar 3.14
Sin embargo, lo que debe tener cuidado al utilizar +
para imprimir varios parámetros es que el tipo de parámetros debe ser el mismo. Tratar de imprimir el ejemplo anterior sin la conversión de la string
primero daría como resultado un error, ya que intentaría agregar el número 1
a la cadena "bar"
y agregarlo al número 3.14
.
# Wrong:
# type:int str float
print(foo + bar + baz)
# will result in an error
Esto se debe a que el contenido de la print
se evaluará primero:
print(4 + 5)
# out: 9
print("4" + "5")
# out: 45
print([4] + [5])
# out: [4, 5]
De lo contrario, usar a +
puede ser muy útil para que un usuario lea la salida de variables. En el siguiente ejemplo, ¡la salida es muy fácil de leer!
El siguiente script demuestra esto
import random
#telling python to include a function to create random numbers
randnum = random.randint(0, 12)
#make a random number between 0 and 12 and assign it to a variable
print("The randomly generated number was - " + str(randnum))
Puede evitar la print
la función de imprimir automáticamente una nueva línea utilizando el end
de parámetros:
print("this has no newline at the end of it... ", end="")
print("see?")
# out: this has no newline at the end of it... see?
Si desea escribir en un archivo, puede pasarlo como file
parámetros:
with open('my_file.txt', 'w+') as my_file:
print("this goes to the file!", file=my_file)
¡Esto va al archivo!
Parámetros de impresión
Puedes hacer más que solo imprimir texto. print
también tiene varios parámetros para ayudarte.
Argumento sep
: coloca una cadena entre argumentos.
¿Necesita imprimir una lista de palabras separadas por una coma o alguna otra cadena?
>>> print('apples','bannas', 'cherries', sep=', ')
apple, bannas, cherries
>>> print('apple','banna', 'cherries', sep=', ')
apple, banna, cherries
>>>
end
argumento: use algo que no sea una nueva línea al final
Sin el argumento end
, todas print()
funciones print()
escriben una línea y luego van al principio de la siguiente línea. Puede cambiarlo para que no haga nada (use una cadena vacía de ''), o doble espacio entre párrafos utilizando dos líneas nuevas.
>>> print("<a", end=''); print(" class='jidn'" if 1 else "", end=''); print("/>")
<a class='jidn'/>
>>> print("paragraph1", end="\n\n"); print("paragraph2")
paragraph1
paragraph2
>>>
file
argumento: enviar salida a otro lugar que no sea sys.stdout.
Ahora puede enviar su texto a stdout, a un archivo, oa StringIO y no le importa lo que le den. Si funciona como un archivo, funciona como un archivo.
>>> def sendit(out, *values, sep=' ', end='\n'):
... print(*values, sep=sep, end=end, file=out)
...
>>> sendit(sys.stdout, 'apples', 'bannas', 'cherries', sep='\t')
apples bannas cherries
>>> with open("delete-me.txt", "w+") as f:
... sendit(f, 'apples', 'bannas', 'cherries', sep=' ', end='\n')
...
>>> with open("delete-me.txt", "rt") as f:
... print(f.read())
...
apples bannas cherries
>>>
Hay un cuarto parámetro de flush
que forzará la descarga de la corriente.