curso
Función Print() de Python
Si te estás iniciando en Python y quieres aprender más, sigue el curso Introducción a la ciencia de datos en Python de DataCamp.
Muchos de ustedes, mientras leen este tutorial, podrían pensar que no hay nada por descubrir acerca de una simple función de impresión de Python, ya que todos ustedes habrían comenzado a aprender Python con el eterno ejemplo de imprimir Hello, World!
. También es cierto que Python o, para el caso, cualquier lenguaje de programación, la función Imprimir es la más básica y el paso de bebé que se da mientras se aprende un lenguaje en particular. Sin embargo, mientras se aprende un lenguaje de programación, a veces se tiende a centrarse en temas más avanzados y muchas veces se olvidan los entresijos o las capacidades de una función sencilla que casi siempre se utiliza.
El tutorial de hoy se centrará por completo en la función Imprimir de Python; aprenderás sobre la función más subestimada.
Comencemos este tutorial imprimiendo el ejemplo Hello, World!
.
print("Hello, World!")
Hello, World!
A diferencia de Python2
, que no requería que pusiera un paréntesis, en Python3
, el paréntesis es obligatorio, de lo contrario se producirá un error de sintaxis como se muestra a continuación.
print "Hello, World!"
File "", line 1
print "Hello, World!"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello, World!")?
De la salida anterior, se puede concluir que en Python3, print()
no es una declaración, sino una función.
Dicho esto, comprobemos la type/class
de la función print()
.
type(print)
builtin_function_or_method
Devuelve builtin_function_or_method
, lo que significa que es un Python Function
predefinido o incorporado.
Ahora digamos que desea añadir una nueva línea o un espacio vertical entre las dos salidas de abajo, para lograr esto usted puede simplemente llamar a la función print()
sin pasar ningún argumento en ella.
print("Hello, World!");print("Hello, World!")
Hello, World!
Hello, World!
print("Hello, World!")
print()
print("Hello, World!")
Hello, World!
Hello, World!
Veamos la sintaxis de la función print()
. print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Como ya sabrás, la función print imprime los valores a un stream, o a sys.stdout por defecto. El sys.stdout o salida estándar del sistema significa que la función print imprimirá la salida en la pantalla, e incluso se puede cambiar a stdin o stderr.
Argumentos opcionales de palabra clave:
-
sep
: Puede ser una cadena que desee insertar entre los valores, por defecto es un espacio.Pongamos una lista de palabras dentro de la función de impresión y separémoslas con una nueva línea. Recuerde que, por defecto, el separador añade un espacio en blanco entre cada palabra.
print('datacamp','tutorial','on','python','print','function')
datacamp tutorial on python print function
print('datacamp','tutorial','on','python','print','function',sep='\n') #`\n` will put each word in a new line
datacamp
tutorial
on
python
print
function
Del mismo modo, puede separarlos con una coma, o añadir dos \n
que añadirá una línea vacía en medio o incluso añadir un signo más $(+)$.
print('datacamp','tutorial','on','python','print','function',sep=',')
datacamp,tutorial,on,python,print,function
print('datacamp','tutorial','on','python','print','function',sep='\n\n')
datacamp
tutorial
on
python
print
function
print('datacamp','tutorial','on','python','print','function',sep=',+')
datacamp,+tutorial,+on,+python,+print,+function
Antes de pasar al siguiente argumento, es decir, end
, recuerde que también puede pasar una variable a la función print. Para entenderlo, pongamos un ejemplo definiendo una lista de enteros y pasándola a la función print. Es de esperar que imprima la lista de enteros.
int_list = [1,2,3,4,5,6]
print(int_list)
[1, 2, 3, 4, 5, 6]
-
end
: Es una cadena que se añade después del último valor, por defecto es una nueva línea. Permite al programador definir un carácter final personalizado para cada llamada de impresión distinto de la nueva línea predeterminada o de\n
.Digamos que tienes dos cadenas y quieres unirlas con un espacio, todo lo que tendrías que hacer es en la función de impresión de la primera cadena
str1
añadirend
argumento entre comillas, y puedes esperar que las dos cadenas se unan con un espacio.
str1 = 'datacamp tutorial on'
str2 = 'python print function'
print(str1)
print(str2)
datacamp tutorial on
python print function
print(str1,end=' ')
print(str2)
datacamp tutorial on python print function
Tomemos otro ejemplo en el que tenemos una función cuyo trabajo es imprimir todos los valores de una lista en la misma línea. Puede conseguirlo con el argumento end
, como se muestra a continuación:
def value(items):
for item in items:
print(item, end=' ')
value([1,2,3,4])
1 2 3 4
-
file
: Un objeto similar a un archivo (stream); por defecto es el sys.stdout actual. Aquí puede mencionar el archivo en el que desea escribir o anexar la salida de la función de impresión.Utilizando el argumento archivo, puede almacenar la salida de la función de impresión en un archivo en varios formatos como
.csv
,.txt
, etc. Entendamos esto tomando un ejemplo en el que se itera sobre cada elemento de la lista. Se guarda en un archivo de texto. Para ello, en primer lugar, abrirá un archivo de texto en un estadoappend
en el que guardará la salida de la sentencia print. A continuación, definirá la función cuya salida se añadirá al archivo de texto.
file = open('print.txt','a+')
def value(items):
for item in items:
print(item, file=file)
file.close() # close the file ones the function execution completes.
value([1,2,3,4,5,6,7,8,9,10])
Una vez completada la ejecución de la función anterior, debería ver un archivo llamado print.txt
en su directorio actual. Abrámoslo y veamos su contenido.
De la salida anterior, está claro que incluso puede guardar la salida en archivos y no sólo imprimir la salida en el terminal o dentro del cuaderno.
-
flush
: Determina si se debe vaciar forzosamente el flujo. Por defecto, está en False.Normalmente, la salida a un archivo o a la consola se almacena en búfer, con salida de texto al menos hasta que se imprime una nueva línea(Source). Buffer significa que la salida se almacena en algún tipo de registro donde reside la salida antes de que esté lista para ser almacenada o de que el archivo se cierre definitivamente. El trabajo de la descarga es asegurarse de que la salida, que está siendo almacenada en búfer, va al destino de forma segura.
import time
print('Please enter your email-id : ', end=' ')
#print('Please enter your email-id : ', end=' ', flush=True) #run this to see the difference and comment out the above line of code.
time.sleep(5)
Please enter your email-id :
Si ejecuta las líneas de código anteriores en el terminal, observará que la cadena de aviso no aparece hasta que finaliza el temporizador de reposo y el programa sale(Fuente). Sin embargo, si añade flush=True
en la función de impresión, verá el aviso y tendrá que esperar 5 segundos a que termine el programa.
De alguna manera el Jupyter Notebook o Jupyter Lab se encarga de ello y muestra el prompt antes del temporizador de 5 segundos, así que si quieres probar esta funcionalidad de impresión, asegúrate de ejecutarlo en la terminal de línea de comandos y no en el jupyter notebook.
Veamos ahora cómo se puede hacer uso de la función de impresión para tomar la entrada del usuario en el cuaderno jupyter. Para ello, utilizará la función integrada de python input()
.
tutorial_topic = input()
print("The topic of today's tutorial is: ", end='')
print(tutorial_topic)
Print Function
The topic of today's tutorial is: Print Function
En cuanto ejecute la celda anterior, debería ver una salida como la que se muestra a continuación:
Aquí definiste un argumento opcional con nombre end
que aprendiste antes, el cual concatena la sentencia static dentro de la sentencia print con la entrada del usuario.
Veamos algunas formas más interesantes de imprimir valores variables dentro de la función print.
- Para mostrar el valor de una variable junto con una cadena predefinida, basta con añadir una coma entre ambos. Aquí la posición de la cadena predefinida y de la variable no importa.
a = 2
b = "Datacamp"
print(a,"is an integer while",b,"is a string.")
2 is an integer while Datacamp is a string.
-
Puede hacer uso del argumento
format
en el que puede pasar tantas variables como desee imprimir. Al pasar las variables en la función de formato, es necesario especificar los números de índice (orden en que se colocan dentro del argumento de formato) en la cadena predefinida. Esta función de impresión le servirá de plantilla.Otra cosa que hay que recordar es que aquí los números de índice se representan con una llave
{}
que representa un marcador de posición.Entendámoslo con el siguiente ejemplo:
a = 2
b = "Datacamp"
print("{0} is an integer while {1} is a string.".format(a,b))
2 is an integer while Datacamp is a string.
Si pones el número de índice de la segunda variable en ambos lugares, como es de esperar, imprimirá los mismos valores, en este caso, b
variable para ambos.
print("{1} is an integer while {1} is a string.".format(a,b))
Datacamp is an integer while Datacamp is a string.
-
De forma similar a un argumento de
format
en el que la función print actúa como plantilla, dispone de un signo de porcentaje (%) que puede utilizar para imprimir los valores de las variables.Al igual que el argumento format, este también tiene un concepto de marcadores de posición. Sin embargo, a diferencia de la función
format
, en la que sólo se introducen los números de índice, en esta también es necesario especificar el tipo de datos que debe esperar el marcador de posición.- %d se utiliza como marcador de posición para valores numéricos o decimales.
- %s se utiliza como marcador de posición para cadenas.
a = 2
b = "Datacamp"
print("%d is an integer while %s is a string."%(a,b))
2 is an integer while Datacamp is a string.
Veamos qué ocurre si especificamos %s
para la variable a
que es un entero.
print("%s is an integer while %s is a string."%(a,b))
2 is an integer while Datacamp is a string.
Como puedes ver en el ejemplo anterior, sigue funcionando. La razón es que la función Print
realizaba implícitamente typecasting
y convertía el número entero en una cadena. Sin embargo, lo contrario no es cierto. Fallará al convertir una cadena a un número entero y dará como resultado TypeError
.
Averigüémoslo.
print("%d is an integer while %d is a string."%(a,b))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 print("%d is an integer while %d is a string."%(a,b))
TypeError: %d format: a number is required, not str
Conclusión
Enhorabuena por terminar el tutorial.
Este tutorial es un buen punto de partida para los principiantes que aspiran a dominar Python. Puede que quieras jugar un poco más con la función Imprimir y explorar algunas funcionalidades más que puede que se te hayan escapado en este tutorial.
No dudes en hacer cualquier pregunta relacionada con este tutorial en la sección de comentarios más abajo.
Si acaba de iniciarse en Python y desea obtener más información, consulte el curso Introducción a la ciencia de datos en Python de DataCamp y el tutorial sobre funciones de Python.
Cursos de Python
curso
Introduction to Data Science in Python
curso
Intermediate Python
tutorial
Tutorial y Ejemplos de Funciones y Métodos de Listas en Python
tutorial
Tutorial de funciones de Python
tutorial
Matrices en Python
DataCamp Team
3 min
tutorial
Tutorial de list index() de Python
tutorial
Tutorial de Python String format()
DataCamp Team
5 min
tutorial