Teoria Salida y Entrada de Datos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Salida por pantalla: la función print()

En Informática, la "salida" de un programa son los datos que el programa proporciona al


exterior. Aunque en los inicios de la informática la salida más habitual era una impresora,
hace muchos años que el dispositivo de salida más habitual es la pantalla del ordenador.

Salida por pantalla en el entorno interactivo


En un entorno interactivo (por ejemplo, en IDLE), para que Python nos muestre el valor
de una variable basta con escribir su nombre.

>>> a = 2
>>> a
2

También se puede conocer el valor de varias variables a la vez escribiéndolas entre comas
(el entorno interactivo las mostrará entre paréntesis), como muestra el siguiente ejemplo:

>>> a = b = 2
>>> c = "pepe"
>>> a
2
>>> c, b
('pepe', 2)

La función print()
En los programas, para que python nos muestre texto o variables hay que utilizar la
función print().
La función print() permite mostrar texto en pantalla. El texto a mostrar se escribe como
argumento de la función:

print("Hola")

Hola

Las cadenas se pueden delimitar tanto por comillas dobles (") como por comillas simples
(').

print('Hola')

Hola

Nota: En estos apuntes se utilizan normalmente comillas dobles.

La función print() admite varios argumentos seguidos. En el programa, los argumentos


deben separarse por comas. Los argumentos se muestran en el mismo orden y en la misma
línea, separados por espacios:
print("Hola", "Adiós")

Hola Adiós

Cuando se trata de dos cadenas seguidas, se puede no escribir comas entre ellas, pero las
cadenas se escribirán seguidas, sin espacio en blanco entre ellas:

print("Hola" "Adiós")

HolaAdios

Al final de cada print(), Python añade automáticamente un salto de línea:

print("Hola")
print("Adiós")

Hola

Adiós

Para generar una línea en blanco, se puede escribir una orden print() sin argumentos.

print("Hola")
print()
print("Adiós")

Hola

Adiós

Si se quiere que Python no añada un salto de línea al final de un print(), se debe añadir al
final el argumento end="":

print("Hola", end="")
print("Adiós")

HolaAdios

En el ejemplo anterior, las dos cadenas se muestran pegadas. Si se quieren separar los
argumentos en la salida, hay que incluir los espacios deseados (bien en la cadena, bien en
el argumento end):

print("Hola. ", end="")


print("Adiós")

Hola. Adiós

print("Hola.", end=" ")


print("Adiós")

Hola. Adiós

El valor del parámetro end puede ser una variable:


texto = " y "
print("Hola", end=texto)
print("Adiós")

Hola y Adiós

El valor del parámetro end puede ser una cadena f:

texto = "y"
print("Hola", end=f" {texto} ")
print("Adiós")

Hola y Adiós

Como las comillas indican el principio y el final de una cadena, si se escriben comillas
dentro de comillas se produce un error de sintaxis.

print("Un tipo le dice a otro: "¿Cómo estás?"")

File "prueba.py", line 1

print("Un tipo le dice a otro: "¿Cómo estás?"")

SyntaxError: invalid character in identifier

print('Un tipo le dice a otro: '¿Cómo estás?'')

File "prueba.py", line 1

print('Un tipo le dice a otro: '¿Cómo estás?'')

SyntaxError: invalid character in identifier

Nota: Si nos fijamos en la forma como el editor colorea la instrucción, podemos darnos
cuenta de que hay un error en ella. Como las cadenas empiezan y acaban con cada comilla,
el editor identifica dos cadenas y un texto en medio que no sabe lo que es.
Para incluir comillas dentro de comillas, se puede escribir una contrabarra (\) antes de la
comilla para que Python reconozca la comilla como carácter, no como delimitador de la
cadena:

print("Un tipo le dice a otro: \"¿Cómo estás?\"")


print('Y el otro le contesta: \'¡Pues anda que tú!\'')

Un tipo le dice a otro: "¿Cómo estás?"

Y el otro le contesta: '¡Pues anda que tú!'

O escribir comillas distintas a las utilizadas como delimitador de la cadena:


print("Un tipo le dice a otro: '¿Cómo estás?'")
print('Y el otro le contesta: "¡Pues anda que tú!"')

Un tipo le dice a otro: '¿Cómo estás?'

Y el otro le contesta: "¡Pues anda que tú!"

La función print() permite incluir variables o expresiones como argumentos, lo que nos
permite combinar texto y variables:

nombre = "Pepe"
edad = 25
print("Me llamo", nombre, "y tengo", edad, "años.")

Me llamo Pepe y tengo 25 años.

semanas = 4
print("En", semanas , "semanas hay", 7 * semanas, "días.")

En 4 semanas hay 28 días.

La función print() muestra los argumentos separados por espacios, lo que a veces no es
conveniente. En el ejemplo siguiente el signo de exclamación se muestra separado de la
palabra.

nombre = "Pepe"
print("¡Hola,", nombre, "!")
¡Hola, Pepe !

Utilización de las cadenas "f".

nombre = "Pepe"
print(f"¡Hola, {nombre}!")

¡Hola, Pepe!

En general, las cadenas "f" permiten combinar, cadenas, variables y expresiones de una
forma más clara:

nombre = "Pepe"
edad = 25
print(f"Me llamo {nombre} y tengo {edad} años.")

Me llamo Pepe y tengo 25 años.

semanas = 4
print(f"En {semanas} semanas hay {7 * semanas} días.")

En 4 semanas hay 28 días.


Entrada por teclado: la
función input()
En Informática, la "entrada" de un programa son los datos que llegan al programa desde
el exterior. Actualmente, el origen más habitual es el teclado.

La función input()
La función input() permite obtener texto escrito por teclado. Al llegar a la función, el
programa se detiene esperando que se escriba algo y se pulse la tecla Intro, como muestra
el siguiente ejemplo:

print("¿Cómo se llama?")
nombre = input()
print(f"Me alegro de conocerle, {nombre}")

¿Cómo se llama?

Pepe

Me alegro de conocerle, Pepe

En el ejemplo anterior, el usuario escribe su respuesta en una línea distinta a la pregunta


porque Python añade un salto de línea al final de cada print().
Si se prefiere que el usuario escriba su respuesta a continuación de la pregunta, se podría
utilizar el argumento opcional end en la función print(), que indica el carácter o caracteres
a utilizar en vez del salto de línea. Para separar la respuesta de la pregunta se ha añadido
un espacio al final de la pregunta.

print("¿Cómo se llama? ", end="")


nombre = input()
print(f"Me alegro de conocerle, {nombre}")

¿Cómo se llama? Pepe

Me alegro de conocerle, Pepe

Otra solución, más compacta, es aprovechar que a la función input() se le puede enviar
un argumento que se escribe en la pantalla (sin añadir un salto de línea):

nombre = input("¿Cómo se llama? ")


print(f"Me alegro de conocerle, {nombre}")

¿Cómo se llama? Pepe

Me alegro de conocerle, Pepe

Conversión de tipos
De forma predeterminada, la función input() convierte la entrada en una cadena, aunque
escribamos un número. Si intentamos hacer operaciones, se producirá un error.
cantidad = input("Dígame una cantidad en pesetas: ")
print(f"{cantidad} pesetas son {round(cantidad / 166.386, 2)} euros")

Dígame una cantidad en pesetas: 500

Traceback (most recent call last):

File "ejemplo.py", line 2, in <module>

print(f"{cantidad} pesetas son {cantidad / 166.386} euros")

TypeError: unsupported operand type(s) for /: 'str' and 'float'

Si se quiere que Python interprete la entrada como un número entero, se debe utilizar la
función int() de la siguiente manera:

cantidad = int(input("Dígame una cantidad en pesetas: "))


print(f"{cantidad} pesetas son {round(cantidad / 166.386, 2)} euros")

Dígame una cantidad en pesetas: 500

500 pesetas son 3.01 euros

De la misma manera, para que Python interprete la entrada como un número decimal, se
debe utilizar la función float() de la siguiente manera:

cantid= float(input( ("Dígame una cantidad en euros (hasta con 2 decimales):"))


print(f"{cantid} euros son {round(cantid * 166.386)} pesetas")

Dígame una cantidad en euros (hasta con 2 decimales): 9.99

9.99 euros son 1662 pesetas

Pero si el usuario no escribe un número, las funciones int() o float() producirán un error:

cant = float(input("Dígame una cantidad en euros (hasta con 2 decimales): "))


print(f"{cant} euros son {round(cant * 166.386)} pesetas")

Dígame una cantidad en euros (hasta con 2 decimales): Pepito

Traceback (most recent call last):

File "ejemplo.py", line 1, in <module>

cantidad = float(input("Dígame una cantidad en euros: "))

ValueError: could not convert string to float: 'Pepito'

De la misma manera, si el usuario escribe un número decimal, la función int() producirá


un error:

edad = int(input("Dígame su edad: "))


print(f"Su edad son {edad} años")

Dígame su edad: 15.5

Traceback (most recent call last):

File "ejemplo.py", line 1, in <module>


edad = int(input("Dígame su edad: "))

ValueError: invalid literal for int() with base 10: '15.5'

Pero si el usuario escribe un número entero, la función float() no producirá un error,


aunque el número se escribirá con parte decimal (.0):

peso = float(input("Dígame su peso en kg: "))


print(f"Su peso es {peso} kg")

Dígame su peso en kg: 84

Su peso es 84.0 kg

Variables como argumento de la función input()


nombre = input("Dígame su nombre: ")
apellido = input(f"Dígame su apellido, {nombre}: ")
print(f"Me alegro de conocerle, {nombre} {apellido}.")

Dígame su nombre: Pepito

Dígame su apellido, Pepito: Conejo

Me alegro de conocerle, Pepito Conejo.

numero1 = int(input("Dígame un número: "))


numero2 = int(input(f"Dígame un número mayor que {numero1}: "))
print(f"La diferencia entre ellos es {numero2 - numero1}.")

Dígame un número: 5

Dígame un número mayor que 5: 8

La diferencia entre ellos es 3.

También podría gustarte