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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow