Apuntes Python4
Apuntes Python4
Contenido
1. INTRODUCCION.............................................................................................................................2
1.1 Características.........................................................................................................................2
2. INSTALACIÓN EN WINDOWS.........................................................................................................4
1.1 Intérprete de Python...............................................................................................................4
3. INTRODUCCIÓN.............................................................................................................................8
3.1 Hola mundo.............................................................................................................................8
3.2 Comentarios............................................................................................................................9
4. VARIABLES.....................................................................................................................................9
5. TIPOS DE DATOS..........................................................................................................................11
5.1 Números................................................................................................................................12
5.1.1 Operadores matemáticos (aritméticos)..........................................................................14
5.1.2 Operadores de asignación..............................................................................................14
5.2 Cadenas.................................................................................................................................16
5.2.1 Leer datos. Input().........................................................................................................19
5.3 Booleano...............................................................................................................................20
5.4 Listas......................................................................................................................................23
5.5 Tuplas....................................................................................................................................30
5.6 Diccionarios...........................................................................................................................34
6. CONDICIONALES..........................................................................................................................38
6.1 if, if-else, if-elif-else...............................................................................................................38
6.2 try – except............................................................................................................................43
6.3 match....................................................................................................................................44
7. BUCLES........................................................................................................................................49
7.1 While.....................................................................................................................................49
7.1 For.........................................................................................................................................54
1
PROGRAMACIÓN EN PYTHON
1. INTRODUCCION
Python es un lenguaje de programación creado por Guido van Rossum en los
Países Bajos. Ha sido uno de los lenguajes más populares desde su lanzamiento
en 1991 y sigue siendo muy activo en la actualidad gracias a una comunidad de
desarrolladores de todo el mundo.
1.1 Características
Sintaxis simple e intuitiva. Facilita la tarea de escribir código, su lectura,
comprensión y aprendizaje, incluso si no se tiene mucha experiencia en
programación.
2
PROGRAMACIÓN EN PYTHON
Por ejemplo, si tenemos una variable que contiene un texto (variable de tipo
cadena o string) no podremos tratarla como un número (sumar la cadena “9” y el
número 8). En otros lenguajes el tipo de la variable cambiaría para adaptarse al
comportamiento esperado, aunque esto es más propenso a errores.
Un objeto es un elemento que, por ejemplo, representa a una persona que tiene
unas determinadas características como nombre, edad y dirección y cuenta,
además, con una serie de comportamientos como caminar, hablar, respirar y
correr.
2. INSTALACIÓN EN WINDOWS
Una vez descargado, hacer doble click sobre el archivo para ejecutarlo y seguir el
proceso de instalación. Durante el proceso, aparecerá una ventana que permitirá
seleccionar las opciones de configuración para Python. Asegurarse de seleccionar
la opción “Add Python to PATH” para que Python se pueda ejecutar desde la línea
de comandos.
4
PROGRAMACIÓN EN PYTHON
5
PROGRAMACIÓN EN PYTHON
Existen varios IDE para Python: PyCharm, Spyder, IDLE, Jupyter, Visual Studio
Code, … En nuestro caso utilizaremos el último, VSC.
6
PROGRAMACIÓN EN PYTHON
7
PROGRAMACIÓN EN PYTHON
3. INTRODUCCIÓN
La primera tarea será crear una carpeta para guardar los programas que se
vayan desarrollando.
El segundo paso será abrir el editor de código, en nuestro caso Visual Studio
Code, y crear un nuevo archivo, con extensión .py ya que es la extensión
propia de Python. Un archivo que contiene código se denomina script.
Este es un ejemplo muy básico de Python. La función print() se usa para imprimir
en la pantalla el mensaje que estaba dentro de los paréntesis y las comillas. En
este ejemplo, el mensaje es Hola mundo.
3.2 Comentarios
8
PROGRAMACIÓN EN PYTHON
Se llama comentario a un texto incluido dentro del código pero que no tiene
ningún efecto sobre la ejecución del código. Un comentario es una nota
aclaratoria sobre la funcionalidad del programa, el uso de una variable, o
cualquier otra aclaración que se considere necesaria para comprender mejor el
código que se está escribiendo.
'''Comentario de varias
líneas con comillas simples'''
"""Comentario de varias
líneas con comillas dobles"""
4. VARIABLES
Una variable es un espacio de memoria reservado en nuestro programa para
almacenar un valor. Este valor puede ser un número, una cadena de texto, un
valor booleano, ...
edad = 25
Ahora, por ejemplo, se podría imprimir el valor de la variable en la consola
utilizando la función “print”:
print(edad) # imprimirá 25
Para cambiar el valor almacenado en la variable “edad”, simplemente se le asigna
un nuevo valor:
edad = 30
Ahora, al imprimir el valor de “edad” nuevamente, se verá que ha cambiado:
9
PROGRAMACIÓN EN PYTHON
print(edad) # imprimirá 30
Las variables son dinámicas, lo que significa que no es necesario especificar de
antemano qué tipo de valor almacenarán. Por ejemplo, se define una variable
llamada “nombre” que almacena una cadena de texto:
nombre = "Ramón"
Y luego, se modifica su valor para almacenar un número:
nombre = 33
Aunque esta flexibilidad puede ser conveniente, también puede hacer que el
código sea más difícil de leer y mantener. Para ayudar a mitigar esto, es útil
seguir buenas prácticas de programación, como nombrar las variables de manera
descriptiva y utilizar comentarios para explicar su propósito.
numero1 = 5
numero2 = 7
En este caso, se han definido dos variables llamadas “numero1” y “numero2”,
asignándoles los valores 5 y 7, respectivamente.
Python permite definir varias variables en una misma línea, tanto con el mismo
valor, como con valores diferentes.
a = b = c = 8
x, y, z = 5, 10, 15
10
PROGRAMACIÓN EN PYTHON
También se puede visualizar el valor de las variables con una sola instrucción,
mostrando el resultado en el terminal.
x, y, z = 5, 10, 15
print(x, y , z) # 5 10 15
Los nombres de variables pueden contener números y letras, pero deben
comenzar con una letra.
5. TIPOS DE DATOS
En Python, existen diferentes tipos de datos que son utilizados para realizar
operaciones. Los tipos de datos son importantes ya que determinan la capacidad
de almacenamiento, los tipos de operaciones a realizar y contribuyen a la correcta
utilización de la memoria del equipo.
11
PROGRAMACIÓN EN PYTHON
entero = 5
decimal = 3.14
print(type(entero)) # int
print(type(decimal)) # float
En este caso, se han definido dos variables: una variable “entero”, a la que se le
ha asignado el valor 5 (un número entero), y una variable “decimal”, con valor
3.14 (un número decimal). La función “type()” permite conocer el tipo de dato de
cada variable en la consola.
5.1 Números
Son un tipo de dato utilizado para realizar operaciones matemáticas. Los números
pueden ser enteros (int), decimales (float) y complejos (complex) con una parte
real y una imaginaria.
entero = 5
decimal = 3.7
12
PROGRAMACIÓN EN PYTHON
complejo = 3+5j
print(type(entero)) # <class 'int'>
print(type(decimal)) # <class 'float'>
print(type(complejo)) # <class 'complex'>
Se pueden utilizar directamente números binarios (base 2) anteponiendo 0b al
número binario, octales (base 8) añadiendo 0o delante del número octal y
hexadecimales (base 16) añadiendo 0x delante del número hexadecimal y. El
primer dígito de 0b, 0o y 0x es un cero (no confundir con la letra o mayúscula).
binario = 0B10001101
octal = 0o173
hexadecimal = 0x7b
La función bin() convierte un número decimal en binario. La función oct()
convierte un número decimal en octal. La función hex() convierte un número
decimal en hexadecimal.
a = 79
bin_a = bin(a) # Convierte un número decimal en binario
oct_a = oct(a) # Convierte un número decimal en octal
hex_a = hex(a) # Convierte un número decimal en hexadecimal
print(bin_a) # b1001111
print(oct_a) # 0o117
print(hex_a) # 0x4f
La función int() convierte un número en base no decimal a decimal.
a = 0b10010110
print(int(a)) # 150
Ejercicio 2.
Crea una variable de tipo entero, otra de tipo decimal y otra de tipo complejo.
Muestra en el terminal el tipo de las variables creadas.
13
PROGRAMACIÓN EN PYTHON
a,b = 11, 7
print("a = 11, b = 7")
print("a + b =", a + b) # a + b = 18
print("a - b =", a - b) # a - b = 4
print("a x b =", a * b) # a x b = 77
print("a exp b =", a ** b) # a exp b = 19487171
print("a / b =", a / b) # a / b = 1.5714285714285714
print("cociente a / b =", a // b) # cociente a / b = 1
print("resto a / b =", a % b) # resto a / b = 4
La precedencia de operadores en programación se refiere a las reglas que
establecen el orden en que se deben ejecutar las operaciones dentro de una
expresión.
14
PROGRAMACIÓN EN PYTHON
a, b = 7, 2
a += 1 # a = a + 1
print(a) # 8
a, b = 7, 2
a += 6 # a = a + 6
print(a) # 13
a, b = 7, 2
a += b # a = a + b
print(a) # 9
a = 5
a -= 3 # a = a -3
print(a) # 2
a, b = 7, 4
b *= a # b = b * a
print(b) # 28
print(a) # 7
a, b = 38, 7
a /= b # a = a / b
print(a) # 5.428571428571429
a, b = 38, 7
a //= b # a = a // b
print(a) # 5
a, b = 38, 7
a % b # a = a % b
print(a) # 3
La función round(x, y) permite redondear el valor x a un número máximo de
decimales indicado en y.
a, b = 38, 7
a /= b # a = a / b
print(a) # 5.428571428571429
print(round(a, 3)) #5.429
a, b = 9, 2
print(round(a/b, 3)) # 4.5
a, b = 9, 3
print(round(a/b, 3)) # 3.0
15
PROGRAMACIÓN EN PYTHON
5.2 Cadenas
Las cadenas de texto son un tipo de dato utilizado para representar texto, siempre
delimitado por comillas simples o dobles. Las cadenas de texto son inmutables;
una vez creadas, no se pueden modificar.
nombre = "Juan"
mensaje = "Hola, bienvenido"
La elección del delimitador sólo afecta a cómo se escriben las comillas en la
cadena: si el delimitador es una comilla doble, dentro del texto se puede utilizar la
comilla simple como un carácter. Si el delimitador es una comilla simple, dentro
del texto se puede utilizar la doble. las comillas delimitadoras se pueden incluir
dentro del texto escapándolas con una barra invertida (\).
a = "Hola"
print(len(a)) # 5
b = " clase, "
print(len(b)) # 7
c = (a + b) * 2
print(c) # Hola clase, Hola clase,
print(len(c)) # 24
Si la función len() devuelve el valor 0 indica que la cadena está vacía.
16
PROGRAMACIÓN EN PYTHON
var = ""
print(len(var)) # 0
Python permite acceder a cada uno de los caracteres de la cadena, indicando el
nombre de la variable seguida de la posición que ocupa el carácter entre
corchetes [ ]. La primera posición tiene el valor 0.
var = "informativo"
print(len(var)) # 11
print(var[0]) # i
print(var[4]) # r
print(var[10]) # o
print(var[11]) # IndexError: string index out of range
var = "informativo"
print(var[3]) # o
print(var[0]) # I
print(var[6]) # a
print(var[-1]) # o
print(var[-2]) # v
print(var[-3]) # i
La última posición de una cadena se obtiene restando una unidad al valor que
devuelve la función len()
var = "informativo"
print(len(var)) # 11
print(var[10]) # o
print(var[len(var)-1]) # o
Python dispone de métodos para obtener variaciones de la variable inicial. Para
invocar al método se une el nombre de la variable y el nombre del método,
separados por un punto.
17
PROGRAMACIÓN EN PYTHON
a = "hola"
b = "CLASE"
print([Link]()) # HOLA
print([Link]()) # Hola
print([Link]()) # clase
a = "mama"
print([Link]("ma", "pe")) # pepe
var = "Informativo"
print(var[2:5]) # for
print(var[1:6]) # Inform
print(var[5:8]) # mat
Si se omite b se asume que su valor es 0. Var[:3] equivalente a Var[0:3]
var = "Informativo"
print(var[:1]) # I
print(var[:2]) # In
18
PROGRAMACIÓN EN PYTHON
print(var[;3]) # Inf
si se omite c, se asume que su valor es la longitud de la cadena. Var[3:]
equivalente a Var[3:10]
var = "Informativo"
print(var[1:]) # nformativo
print(var[:2]) # formativo
print(var[:3]) # ormativo
Se debe tener en cuenta que a[:x] + a[x:] = a
var = "Informativo"
print(var[:3]) # Inf
print(var[3:]) # ormativo
print(var[:3] + var[3:]) # Informativo
Ejercicio 3. Asignar a una variable la cadena “esto es un ejemplo”, y, hacer que
se escriba por pantalla la cadena “un ejemplo es esto” utilizando la notación slice.
var1 = 3 * var
print(var1) # 444
19
PROGRAMACIÓN EN PYTHON
Resumen de datos:
5.3 Booleano
Un valor booleano o lógico sólo puede tener dos valores: verdadero (true) o falso
(false).
var1 = False
20
PROGRAMACIÓN EN PYTHON
a, b = 6, 7
resultado = (a == b)
print(resultado, type(resultado)) # False <class 'bool'>
print(a == b) # False
print(a < b) # True
print(a > b) # False
print(a <= b) # True
print(a >= b) # False
print(a != b) # True
print(a is b) # False
print(a is not b) # True
La principal diferencia entre las expresiones x == y y x is y es que x ==y compara
si los valores de x e y son iguales (igualdad), mientras que x is y compara si x e y
apuntan al mismo objeto en la memoria (identidad).
21
PROGRAMACIÓN EN PYTHON
a = 6
b = [2,4,6,8]
print(a in b) # True
print(a not in b) # False
Los operadores de comparación no permiten ciertas operaciones entre datos de
diferente tipo.
a = 6
b = 'Hola'
print(a == b) # False
print(a < b) # TypeError: '<' not supported between
# instances of 'int' and 'str'
El operador or (|) permite realizar varias comparaciones al mismo tiempo.
Devuelve el resultado de True si se cumple cualquiera de las comparaciones.
Devuelve el valor false sólo en el caso de que todas las comparaciones sean
falsas.
a, b = 5, 7
print((a > b) | (a < 0) or (a > 3)) # True
print((a > b) or (a < 0) | (a > 8)) # False
El operador and (&) permite realizar varias comparaciones al mismo tiempo.
Devuelve el valor false si no se cumple cualquiera de las comparaciones.
Devuelve el resultado de True en el caso de que todas las comparaciones sean
ciertas
a, b = 5, 7
print((a < b) & (a > 0) and (a < 3)) # False
print((a < b) and (a > 0) & (a > 3)) # True
Ejercicio 9. Evalúa cada una de las siguientes expresiones indicando cuál es el
resultado y el porqué del mismo. Utiliza las siguientes variables:
a, b, c = 5, 7, 3
x, y, z = -2, 0, 10
texto = 'python'
5.4 Listas
numeros = [1,2,3,4,5]
frutas = ['pera', 'manzana', 'ciruela', 'naranja']
lista_ejemplo = [15, 'pera', ['Zaragoza', 'Huesca', 'Teruel']]
lista_vacia = [] # Lista vacía
Una vez creada una lista, se puede acceder a sus elementos mediante un índice,
el cual indica la posición del elemento en la lista. El índice empieza a contar
desde cero.
23
PROGRAMACIÓN EN PYTHON
Python permite asignar valores a múltiples variables en una sola línea, siguiendo
la sintaxis: variable1, variable2, … = lista.
24
PROGRAMACIÓN EN PYTHON
x = [Link](2)
print(x) # naranja
print(frutas) # ['pera', 'manzana', 'melocoton']
[Link]()
print(frutas) # ['pera', 'manzana']
Ejercicio 10. Crea una lista de temperaturas con valores [18, 21, 19, 23, 20, 22].
1. Muestra por pantalla la temperatura del tercer día.
2. Modifica el valor del primer día a 17.
3. Agrega al final una nueva temperatura de 24 grados.
4. Muestra la lista completa y la cantidad total de elementos.
Ejercicio 11. Crea una lista con los platos: ['ensalada', 'paella', 'pasta', 'pollo
asado', 'flan'].
1. Cambia el plato 'pasta' por 'lasaña'.
2. Elimina el postre 'flan' usando el método remove().
3. Agrega 'fruta' al final con append().
4. Muestra el menú actualizado.
Ejercicio 12. Crea una lista que contenga cinco películas que hayas visto
recientemente.
25
PROGRAMACIÓN EN PYTHON
Ejercicio 13. Crea una lista con los artículos: ['pan', 'leche', 'huevos'].
1. Agrega 'aceite' y 'arroz' a la lista.
2. Quita el primer elemento con el método pop().
3. Crea una nueva lista llamada bebidas = ['agua', 'zumo'] y combina ambas en
una sola llamada lista_total.
4. Muestra el contenido de lista_total.
Es posible obtener una sublista de una lista dada utilizando la siguiente sintaxis:
lista[inicio: final-1: paso]
lista = [0,1,2,3,4,5,6,7,8,9]
print(lista[3:7:1]) # [3, 4, 5, 6]
print(lista[1:8:2]) # [1, 3, 5, 7]
print(lista[:7:1]) # [0, 1, 2, 3, 4, 5, 6]
print(lista[3::2]) # [3, 5, 7, 9]
print(lista[3:9:]) # [3, 4, 5, 6, 7, 8]
print(lista[6:2:-1]) # [6, 5, 4, 3]
print(lista[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] INVERSA
El método sort() permite ordenar los elementos modificando la lista original.
Por defecto, el orden es de menor a mayor o en orden alfabético.
26
PROGRAMACIÓN EN PYTHON
La función sorted() ordena los elementos de una lista pero sin modificar el
orden original. Por defecto, el orden es de menor a mayor o en orden alfabético.
Añadiendo la expresión “reverse = True” se obtiene el orden inverso.
numeros = [1, 2, 3, 4, 5, 6]
[Link]()
print(numeros) # [6, 5, 4, 3, 2, 1]
lista_anidada = [[1,2,3],[4,5,6],[7,8,9]]
lista_anidada = [
[1,2,3],
[4,5,6],
[7,8,9]
]
Python permite acceder a cada uno de los elementos de las listas y sublistas
utilizando la siguiente notación de índices:
27
PROGRAMACIÓN EN PYTHON
La función set() elimina todos los elementos repetidos de una lista. Esta función
no modifica la lista original. Su resultado es una estructura llamada “set”, por lo
que será necesario convertirla en lista con la función list().
lista = [1,3,8,4,1,5,7,1,9,7,4]
print(reversed(lista)) # <list_reverseiterator object at
0x000002206402B910>
print(list(reversed(lista))) # [4, 7, 9, 1, 7, 5, 1, 4, 8, 3, 1]
print(lista) # [1, 3, 8, 4, 1, 5, 7, 1, 9, 7, 4]
La palabra reservada “in” permite conocer si un elemento está en una lista.
28
PROGRAMACIÓN EN PYTHON
var = [1, 3, 5, 1, 6, 1, 8]
print([Link](1)) # 3
La función index() permite conocer la posición de un determinado elemento
dentro de una lista.
print(list(range(7))) # [0, 1, 2, 3, 4, 5, 6]
print(list(range(3))) # [0, 1, 2]
La función range() admite hasta 3 argumentos, separados por comas, donde el
primero es el inicio de la secuencia, el segundo es el final y el tercero indica el
salto deseado entre números. range(inicio, fin, salto)
Ejercicio 14. Crea una lista con los números del 0 al 20. Muestra por pantalla:
1. Los números del 5 al 15.
2. Los números pares, utilizando el paso adecuado.
3. Los últimos 5 números de la lista en orden inverso.
Ejercicio 15. Dada una lista conteniendo, al menos, 5 frutas (melón, manzana,
plátano, uva, pera, fresa, …), muestra por pantalla:
1. La lista ordenada alfabéticamente
2. La lista en orden invertido
3. Comprueba si “naranja” está incluido en la lista.
4. Indica en qué posición se encuentra “pera”
29
PROGRAMACIÓN EN PYTHON
1. La edad de Andrés
2. El grupo de Laura
3. El nombre del último alumno de la lista
4. Crea una nueva lista sólo con las edades de todos los alumnos
5. Obtén el valor medio de las edades incluidas en la nueva lista
5.5 Tuplas
Las tuplas son una estructura de datos en Python que permiten almacenar una
colección de valores ordenados y sin modificaciones. A diferencia de una
lista, las tuplas son inmutables, lo que significa que una vez que se crea una
tupla, no se pueden agregar, eliminar o modificar elementos en ella. Esta
característica, las hace más eficientes en términos de memoria que las listas y
que Python no necesita reservar espacio adicional para futuras modificaciones en
los elementos de la tupla.
30
PROGRAMACIÓN EN PYTHON
var = 3, 5, 7
print(var) # (3, 5, 7)
Una tupla de un solo elemento sólo será reconocida como tal si termina en una “,”.
En caso contrario, Python la reconoce como otro tipo de dato.
tupla1= (7)
print(tupla1, type(tupla1)) # 7 <class 'int'>
tupla2= (7,)
print(tupla2, type(tupla2)) # (7,) <class 'tuple'>
tupla1= (7, 5)
print(tupla1, type(tupla1)) # (7, 5) <class 'tuple'>
Una característica de las tuplas es que permiten asignar valores a múltiples
variables en una sola línea, siguiendo la sintaxis: variable1, variable2, … = tupla.
31
PROGRAMACIÓN EN PYTHON
del(var)
print(var) # NameError: name 'var' is not defined.
Una tupla puede contener diferentes tipos de variables, incluida una tupla
anidada.
tupla_original = (1, 2, 3, 4, 5)
tupla_nueva = tupla_original + (6,)
print(tupla_nueva) # (1, 2, 3, 4, 5, 6)
mes2 = mes[1:5]
print(mes2) # ('Febrero', 'Marzo', 'Abril', 'Mayo')
Es posible convertir una lista en tupla utilizando la función tuple().
lista = [1, 2, 3]
tupla = tuple(lista)
print(type(tupla)) #<class 'tuple'>
print(tupla) #(1, 2, 3)
Del mismo modo, la función list() permite la conversión de tupla a lista.
32
PROGRAMACIÓN EN PYTHON
var = (1, 3, 5, 1, 6, 1, 8)
print([Link](1)) # 3
La función index() permite conocer la posición de un determinado
elemento dentro de una tupla.
33
PROGRAMACIÓN EN PYTHON
tupla1 = ("Febrero")
tupla2 = ("Febrero",)
print(tupla1, type(tupla1)) # Febrero <class 'str'>
print(tupla2, type(tupla2)) # ('Febrero',) <class 'tuple'>
Ejercicio 18.
1. Crea una tupla con las puntuaciones: 87, 92, 75, 98, 91.
2. Muestra cuántas series incluye la tupla.
3. Muestra la primera y la última serie.
4. Crea una tupla csólo con las tres primeras series.
5. Muestra si la serie “Arcane” está incluida en la tupla.
Ejercicio 19.
1. Crea una tupla con las siguientes series de streaming: The boys, Loki, One
Piece, Breaking Bad, Arcane.
2. Muestra la puntuación más alta y la más baja.
3. Calcula la suma total de las puntuaciones.
4. Muestra el número de elementos de la tupla.
5. Muestra qué índice le corresponde a la puntuación 98.
Ejercicio 20.
1. Crea una tupla con los siguientes ingredientes para elaborar una pizza:
queso, tomate, pepperoni, aceitunas, queso, bacon.
2. Muestra el número total de ingredientes
3. Muestra los ingredientes desde el segundo hasta el cuarto.
4. Muestra si el ingrediente “piña” forma parte de la pizza.
5. Muestra cuántas veces aparece el ingrediente “queso”.
Ejercicio 21.
1. Crea una tupla con los tiempos (en segundos) de los 5 pilotos más rápidos
en una carrera: 92.5, 88.3, 95.7, 90.1, 87.6.
2. Obtén una nueva tupla con los tiempos ordenados de menor a mayor y otra
con el orden inverso.
3. Muestra el mejor y el peor tiempo.
4. Muestra los tres mejores tiempos
5. Crea una nueva tupla con un nuevo tiempo de 89.9 al final
5.6 Diccionarios
34
PROGRAMACIÓN EN PYTHON
35
PROGRAMACIÓN EN PYTHON
print([Link]('Emilio')) # 31
print([Link]('Pedro')) # 25
print([Link]('María')) # 42
Para modificar el valor de un elemento, se accede con su clave y se le asigna un
nuevo valor.
36
PROGRAMACIÓN EN PYTHON
Ejercicio 23.
En la base de datos de una agencia secreta se guardan las edades de un
grupo de superhéroes:
Ejercicio 24.
37
PROGRAMACIÓN EN PYTHON
Ejercicio 25.
Un restaurante tiene el siguiente listado de pedidos:
6. CONDICIONALES
Las estructuras condicionales permiten condicionar la ejecución del código a
ciertas circunstancias.
6.1 if, if-else, if-elif-else
if condición:
instrucción
la sentencia if debe de terminar en el carácter “:” y el bloque de código a ejecutar
debe de estar indentado (probablemente la indentación se produzca
automáticamente al pulsar la tecla enter después del carácter “:”.
La condición es una expresión lógica que debe ser evaluada con el resultado de
verdadero o falso. Si la condición se cumple (verdadero) la instrucción se
ejecutará. Si la condición no se cumple (falso) el programa sale de la estructura
condicional y sigue con la siguiente instrucción.
38
PROGRAMACIÓN EN PYTHON
if condición1:
instrucción1
else:
instrucción2
Si la evaluación de la condición1 es verdadera, se ejecuta el bloque de
instrucciones1 y el programa sale de la estructura if-else. Si la evaluación de la
condición1 es falsa, se ejecuta el bloque de instrucción 2 y el programa sale de la
estructura if-else.
edad = 16
if edad >= 18:
print("Eres mayor de edad.")
else:
print("Eres menor de edad.")
x = 6
if (x % 2) == 0:
print("Es par")
39
PROGRAMACIÓN EN PYTHON
else:
print("Es impar")
En muchos casos, aparecerán varias condiciones diferentes y para cada una de
ellas será necesario un código distinto. Como solución a estas situaciones, se
incluye el término elif en la estructura condicional. El término else se ejecuta en
caso de que el resto de las condiciones no se cumplan.
if condicion1:
instruccion1
elif condicion2:
instruccion2
elif condicion3:
instruccion3
else:
instrucciónN
En el siguiente ejemplo se consideran varias condiciones con sus
correspondientes instrucciones. Como último elemento está else, el cual se
ejecutará sólo si ninguna de las anteriores es verdadera.
x = 5
if x == 5:
print("Es 5")
elif x == 6:
print("Es 6")
elif x == 7:
print("Es 7")
else:
print("Es otro")
Algo no recomendable pero posible, es escribir el bloque de código situado dentro
del if en la misma línea, justo a continuación del carácter “:”.
a = 8
if a > 5:
print("Es > 5")
a = 8
if a > 5:
print("Es > 5")
print("Dentro del if")
40
PROGRAMACIÓN EN PYTHON
a = 7
if a > 5:
pass
Al evaluar una sentencia en una estructura if, existen valores que son
considerados “false” por el compilador de Python. Estos son:
valor entero 0
valor decimal 0,0
Tupla vacía ( )
Lista vacía [ ]
Diccionario vacío { }
Ejercicio 26.
Crea una variable que almacene una contraseña de tipo carácter. Solicita al
usuario que introduzca la contraseña y muestra un mensaje en pantalla
indicando si dicha contraseña es correcta o no. La contraseña no debe de
tener en cuenta mayúsculas o minúsculas a la hora de la validación.
Ejercicio 27.
41
PROGRAMACIÓN EN PYTHON
Escribir un programa que pida al usuario dos números, dividendo y divisor, con
o sin decimales, y muestre por pantalla su división con 3 decimales. Si el
divisor es cero el programa debe mostrar un error.
Ejercicio 28.
El pago de un impuesto del ayuntamiento está condicionado a ser mayor de 16
años y tener unos ingresos superiores a 1000€ mensuales. Escribir un script
que solicite al usuario su edad y sus ingresos mensuales. Con estos datos se
debe de mostrar un mensaje que indique al usuario está exento del pago o
debe tributar.
Ejercicio 29.
Los alumnos de 2ª ESO se han dividido en dos grupos, A y B según su género
y su nombre. Al grupo A pertenecen las mujeres cuyo nombre sea anterior a la
letra J y por los hombres cuyo nombre sea posterior a la letra N. El grupo B
está formado por el resto de los alumnos. Solicita al usuario que indique su
nombre y si es hombre o mujer. De acuerdo a su respuesta, el programa debe
de mostrar por pantalla el grupo al que pertenece.
Ejercicio 30.
La comunidad de Aragón establece los siguientes tramos impositivos (los
tramos incluyen el valor inferior y no alcanzan el valor superior):
0
12.450 20.200 35.200
Renta (€) 12.45 >=50.000
20.200 35.200 50.000
0
Tipo impositivo
19% 24% 30% 37% 39%
(%)
Desarrolla un script que solicite al usuario su renta anual y le indique el tipo
impositivo que le corresponde y la cantidad a tributar. Cantidad = (Renta *
Tipo) / 100.
Ejercicio 31.
Un parque de atracciones cobra a los usuarios un precio de entrada
dependiendo de su edad:
Menor
Edad (años) 4 - 18 18 - 45 45 - 60 60 y más
4
Entrada (€) Gratis 5 15 30 8
42
PROGRAMACIÓN EN PYTHON
Ejercicio 32.
Una pizzería ofrece a sus clientes Pizza Vegetal o Pizza Carne. Los
ingredientes para cada tipo de pizza aparecen a continuación.
Ingredientes vegetal: Espárragos, Aceitunas.
Ingredientes carne: Salami, Jamón, Salchichas.
Escribir un programa que de la bienvenida al usuario y le solicite el tipo de
pizza que desea, siguiendo el siguiente formato:
Bienvenido a Pizzería X
Tipos de pizza:
1. Vegetal
2. Carne
Indica el número de opción elegida:
En función de su respuesta el programa mostrará un menú con los ingredientes
disponibles para que el usuario elija. Solo se puede elegir un ingrediente,
además de la mozzarella y el tomate que están en todas las pizzas. Supón que
el cliente elige la opción 1 (Vegetal)
Ejercicio 33.
43
PROGRAMACIÓN EN PYTHON
Dado un número de DNI sin letra, calcula la letra que le corresponde. Para ello,
divide el número del DNI entre 23 y obtén su resto. Con el valor obtenido, extrae
la letra de la siguiente tabla:
El programa debe de solicitar al usuario que introduzca su DNI sin letra y, una vez
calculada la letra debe de enviar el mensaje:
Ejercicio 34.
Modifica el programa del ejercicio anterior para detectar que el dato introducido
tenga 8 caracteres numéricos y enviar dos mensajes de error, uno en caso de que
el usuario introduzca más o menos de 8 dígitos y otro en caso de que se
introduzca algún dígito no numérico.
try:
numero = int(entrada)
print(f'El número introducido es: {numero}')
except:
44
PROGRAMACIÓN EN PYTHON
print('Dato no válido')
Ejercicio 35.
Desarrolla el ejercicio 34 utilizando la estructura try-except.
6.3 match
dia = 4
match dia:
case 1:
print("Lunes")
case 2:
print("Martes")
case 3:
print("Miércoles")
case 4:
print("Jueves") #Jueves
case 5:
print("Viernes")
case 6:
print("Sábado")
case 7:
print("Domingo")
case _:
print("Dato no válido")
La sentencia match evalúa el valor de la variable y lo compara con cada uno de
los valores especificados en los bloques case. En caso de encontrar una
coincidencia, ejecuta el código correspondiente y sale de la estructura. En otro
caso, ejecuta el último bloque (case _:) y sale de la estructura.
mes = 4
match mes:
case 12 | 1 | 2:
print("Invierno")
case 3 | 4 | 5:
print("Primavera") # Primavera
45
PROGRAMACIÓN EN PYTHON
case 6 | 7 | 8:
print("Verano")
case 9 | 10 | 11:
print("Otoño")
case _:
print("Error")
Al ejecutar el código, se buscará una coincidencia entre el valor de la variable
mes y las opciones case definidas en el script. En el primer bloque case se
especifica que, si el valor de la variable mes es 12, 1 o 2, la salida será “Invierno”.
Como el valor de la variable mes es 4, el primer bloque case será obviado y se
ejecutará la instrucción (o bloque de instrucciones) del segundo case, mostrando
la salida “Primavera”.
coordenada = (0, 1)
match coordenada:
case (0, 0):
print("Coordenada origen")
case (3, 0):
print(f"Coordenada objeto 1")
case (0, 1):
print(f"Coordenada objeto 2")
case (3, 5):
print(f"Coordenada objeto 3")
case _:
print("Error")
En este caso se busca la coincidencia de los 2 valores almacenados en la tupla.
mes = 5
dia = 2
match dia:
case 1 if mes == 4:
print("Es lunes en abril")
case 1 if mes == 5:
print("Es lunes en mayo")
case 2 if mes == 4:
print("Es martes en abril")
case 2 if mes == 5:
print("Es martes en mayo")
case _:
46
PROGRAMACIÓN EN PYTHON
Ejercicio 36.
Realiza una aplicación, utilizando la estructura match, que solicite al usuario un
color e indique el rango de longitud de onda en el que se encuentra, según la
siguiente tabla. Admite datos en mayúscula y minúscula.
Ejercicio 37.
Desarrolla una aplicación que solicite al usuario 2 números, enteros o decimales,
y una operación aritmética, y obtenga el resultado de la misma. Las operaciones
posibles serán suma, resta, multiplicación y división. Se verificará la división por
cero. Se considera que el usuario introduce los datos numéricos sin error.
EJEMPLO 1 EJEMPLO 2
Introduce el primer número: 27.15 Introduce el primer número: 236
Introduce el segundo número: 13 Introduce el segundo número: 5.24
Introduce la operación (+, -, *, /): + Introduce la operación (+, -, *, /): /
El resultado de 27.15 + 13 es 40.15 El resultado de 236 / 5.24 es
45.038167938931295
EJEMPLO 3 EJEMPLO 4
Introduce el primer número: 236 Introduce el primer número: 57
Introduce el segundo número: 0 Introduce el segundo número: 3
Introduce la operación (+, -, *, /): / Introduce la operación (+, -, *, /): 85
ERROR. No se puede dividir por cero Operación no válida
Ejercicio 38.
Mejora el ejercicio 36 verificando que el usuario introduce datos válidos. Además,
se deben de limitar los decimales de salida en la división a un máximo de 3,
eliminando los decimales con valor cero a la derecha.
EJEMPLO 1 EJEMPLO 2
Introduce el primer número: 27.15 Introduce el primer número: 236
Introduce el segundo número: 13 Introduce el segundo número: 5.24
Introduce la operación (+, -, *, /): + Introduce la operación (+, -, *, /): /
El resultado de 27.15 + 13 es 40.15 El resultado de 236 / 5.24 es 45.038
EJEMPLO 3 EJEMPLO 4
Introduce el primer número: 10 Introduce el primer número: 57
Introduce el segundo número: 2 Introduce el segundo número: 3
Introduce la operación (+, -, *, /): / Introduce la operación (+, -, *, /): 85
47
PROGRAMACIÓN EN PYTHON
Ejercicio 39.
Realiza una aplicación para la gestión de reservas en un hotel. El usuario tendrá
que indicar el tipo de habitación y el número de noches que desea alojarse. La
aplicación le confirmará la reserva y el precio a pagar limitado a 2 decimales. El
programa debe de verificar los datos introducidos por el cliente y enviar mensajes
de error si corresponde.
EJEMPLO 1 EJEMPLO 2
RESERVA DE HOTEL RESERVA DE HOTEL
Tipo de habitación: Tipo de habitación:
1. Simple (50€/noche) 1. Simple (50€/noche)
2. Doble (80€/noche) 2. Doble (80€/noche)
3. Suite (150€/noche) 3. Suite (150€/noche)
Indica el tipo de habitación (1, 2 o 3): Indica el tipo de habitación (1, 2 o 3): 1
1 10% descuento para estancias iguales o
10% descuento para estancias iguales superiores a 6 noches
o superiores a 6 noches 20% descuento para estancias iguales o
20% descuento para estancias iguales superiores a 11 noches
o superiores a 11 noches selecciones número de noches (entre 1 y
selecciones número de noches (entre 30): 11
1 y 30): 6 Usted ha seleccionado:
Usted ha seleccionado: Tipo de habitación: Simple
Tipo de habitación: Simple Número noches: 11
Número noches: 6 Precio: 440.0€
Precio: 270.0€
EJEMPLO 3 EJEMPLO 4
RESERVA DE HOTEL RESERVA DE HOTEL
Tipo de habitación: Tipo de habitación:
1. Simple (50€/noche) 1. Simple (50€/noche)
2. Doble (80€/noche) 2. Doble (80€/noche)
3. Suite (150€/noche) 3. Suite (150€/noche)
Indica el tipo de habitación (1, 2 o 3): Indica el tipo de habitación (1, 2 o 3): 3
a 10% descuento para estancias iguales o
Tipo de habitación no admitido superiores a 6 noches
20% descuento para estancias iguales o
superiores a 11 noches
selecciones número de noches (entre 1 y
30): 35
Debe de alojarse un número de noches
entre 1 y 30
Ejercicio 40.
48
PROGRAMACIÓN EN PYTHON
El programa debe de solicitar al usuario que introduzca su NIE (con mayúsculas o minúsculas) sin
letra final y, una vez calculado el carácter final de control debe de enviar el mensaje:
EJEMPLO 1 EJEMPLO 2
Introduce tu número NIE sin incluir la Introduce tu número NIE sin incluir la
letra final (X1234567): X1234567 letra final (X1234567): x1234567
Tu NIE con letra es: X1234567L Tu NIE con letra es: X1234567L
EJEMPLO 3 EJEMPLO 4
Introduce tu número NIE sin incluir la Introduce tu número NIE sin incluir la
letra final (X1234567): X1234 letra final (X1234567): P1234567
DATO NO VÁLIDO. Debes de DATO NO VÁLIDO. La primera letra debe
introducir 8 dígitos (1 letra y 7 de ser X o Y o Z.
números).
EJEMPLO 5 EJEMPLOS NIE VÁLIDOS PARA
PROBAR
Introduce tu número NIE sin incluir la X1111111G, Y1231231D, Z9876543A,
letra final (X1234567): X12PF567 Y1122334V,
X9988776Z
DATO NO VÁLIDO. Los 7 últimos
caracteres deben de ser números.
7. BUCLES
49
PROGRAMACIÓN EN PYTHON
7.1 While
a = 0
while a < 3:
print(a)
a += 1
# 0
# 1
# 2
El programa imprime en pantalla el valor de la variable “a” mientras se cumpla la
condición de que la variable sea menor que 3.
Python permite escribir el bucle en una sola línea, separando las instrucciones del
bucle con un símbolo “;”.
a = 0
while a < 3: print(a); a += 1
Este tipo de bucles no tiene definidas de antemano el número de iteraciones que
se van a producir, ya que depende del resultado de evaluar la condición, por lo
que es necesario asegurar que su uso no llevará a bucles infinitos.
Se puede utilizar la estructura While para eliminar los elementos de una lista uno
a uno hasta que esté vacía:
50
PROGRAMACIÓN EN PYTHON
x = 5
while x > 0:
x -=1
print(x) # 4,3,2,1,0
else:
print("El bucle ha finalizado")
El bucle While se ejecuta mientras la condición ·”x > 0“ sea verdadera (True). La
cláusula “else” se ejecutará cuando la evaluación de la condición While sea falsa
(False).
x = 5
while True:
x -= 1
print(x) #4, 3, 2, 1, 0
if x == 0:
break
El bucle se repite, mostrando el valor de la variable x, hasta que su valor de x es
0, momento en el que la condición if se cumple y se ejecuta del bucle mediante
“break”.
i = 0 # 0 0
j = 0 # 0 1
while i < 3: # 0 2
while j < 3: # 1 0
print(i,j) # 1 1
j += 1 # 1 2
i += 1 # 2 0
j = 0 # 2 1
# 2 2
El comando ‘print’, por defecto, introduce un salto de línea al finalizar su
ejecución. Es posible modificar esa sintaxis añadiendo un parámetro más a la
51
PROGRAMACIÓN EN PYTHON
i = 1
while i < 9:
# print(i)
print(i, end = ' ') # 1 2 3 4 5 6 7 8
i += 1
Las estructuras de iteración permiten repetir una pregunta hasta que el usuario
introduzca una respuesta válida.
contador = 1
respuesta = input('Elige Blanco o Negro (B o N): ').upper()
while respuesta != 'B' and respuesta != 'N' and contador < 3:
print('Respuesta no válida')
respuesta = input('Elige Blanco o negro (B o N): ').upper()
contador += 1
match respuesta:
case 'B':
print(f'Has elegido Blanco')
case 'N':
print(f'Has elegido Negro')
case _:
print(f'Has superado el número de intentos')
En caso de que los datos a introducir sean numéricos y deban ser tratados como
tal posteriormente, se puede plantear el siguiente script para controlar la validez
de los datos introducidos
contador = 0
while contador < 3:
numero = input('Introduce un número entre 1 y 10: ')
try:
52
PROGRAMACIÓN EN PYTHON
numero = int(numero)
if 1 <= numero <= 10:
print(f'Has introducido el número {numero}')
break
else:
contador += 1
print('DATO NO VALIDO. Debes de introducir un número entre 1
y 10')
except:
contador += 1
print('DATO NO VALIDO. Debes de introducir un valor numérico')
else:
print('Superado número máximo de intentos')
Ejercicio 41.
Solicita al usuario una palabra (por ejemplo, Python) y, utilizando una estructura
While, muestra la siguiente secuencia:
P
Py
Pyt
Pyth
Pytho
Python
Ejercicio 42.
En matemáticas, la sucesión de Fibonacci es una sucesión infinita de números
naturales, donde el siguiente es calculado sumando los dos anteriores. Partiendo
de los números 0 y 1, la sucesión quedaría:
Utilizando una estructura While, crea un script que solicite al usuario el número de
elementos de la sucesión de Fibonacci a mostrar y cree una lista con dichos
números. El número a mostrar estará en el rango entre 3 y 30. La aplicación
debe de ser segura ante datos no válidos del usuario.
EJEMPLO 1 EJEMPLO 2
Introduce el número de elementos de la lista Introduce el número de elementos de la lista (entre
(entre 3 y 30): 7 3 y 30): 53
[0, 1, 1, 2, 3, 5, 8] El número debe de ser entre 3 y 30
EJEMPLO 3 EJEMPLO 4
Introduce el número de elementos de la lista Introduce el número de elementos de la lista (entre
(entre 3 y 30): 1 3 y 30): PP
El número debe de ser entre 3 y 30 Debes de introducir un valor numérico entero
53
PROGRAMACIÓN EN PYTHON
Ejercicio 43.
Utilizando una estructura While, realiza una aplicación que muestre el siguiente
dibujo:
*
***
*****
*******
*********
***********
*************
***************
Ejercicio 44.
Mejora el ejercicio 40 solicitando al usuario el número de filas de la figura, el cual
no debe de ser superior a 10.
EJEMPLO 1 EJEMPLO 2
Introduce el número de filas entre 1 y 10 : 8 Introduce el número de filas entre 1 y 10 : PP
Se genera el dibujo Debes de introducir un valor numérico
EJEMPLO 3 EJEMPLO 4
Introduce el número de filas entre 1 y 10 : 13 Introduce el número de filas entre 1 y 10 : 0
Debes de introducir un valor entre 1 y 10 Debes de introducir un valor entre 1 y 10
7.1 For
El bucle For permite repetir una acción un número definido de veces. Esto se
logra utilizando un objeto iterable y realizando una acción sobre cada elemento
existente dentro del objeto.
numeros = [1, 2, 3, 4, 5]
for num in numeros:
print(num, end = ' ') # 1 2 3 4 5
54
PROGRAMACIÓN EN PYTHON
La variable ‘num’ toma el valor de cada uno de los elementos de la lista ‘numeros’
y ejecuta un conjunto de instrucciones en cada iteración. El bucle finaliza cuando
se recorren todos los elementos de números.
No es necesario definir una variable que vaya variando para finalizar el bucle.
La estructura ‘for’ permite recorrer una parte del objeto iterable y realizar las
iteraciones en sentido inverso.
for i in "Python":
print(i, end = ', ') # P, y, t, h, o, n,
print('\b\b', end=' ') # P, y, t, h, o, n - \b retrocede el cursor
una posición y la borra.
texto = "Python"
for i in texto[::-1]:
print(i, end = ' ') # n o h t y P
texto = "Python"
for i in texto[::2]:
print(i, end = ' ') # P t o
55
PROGRAMACIÓN EN PYTHON
# 2 x 9 = 18
# 2 x 10 = 20
56
PROGRAMACIÓN EN PYTHON
Python permite la anidación de bucles for, de forma que se itera un elemento que
tiene a su vez otro elemento iterable.
Break se utiliza para finalizar el bucle, mientras que continue salta al siguiente
paso de la iteración, ignorando todas las sentencias que le siguen y forman parte
del bucle. Por tanto,
coleccion = [2, 4, 5, 7, 8, 9, 3, 4]
for e in coleccion:
if e == 7:
break
print(e, end = ' ') # 2 4 5
for e in coleccion:
if e == 7:
continue
print(e, end = ' ') # 2 4 5 8 9 3 4
Python ofrece una estructura adicional de bucle for en la que incluye la sentencia
else.
for x in range(6):
print(x, end = ' ')
else:
print("La secuencia ha terminado")
# 0 1 2 3 4 5 La secuencia ha terminado
La sentencia else se ejecuta una vez finalizadas las iteraciones del bucle for,
siempre y cuando en dichas iteraciones no se ejecute una instrucción break.
for x in range(6):
print(x, end = ' ')
if x == 5:
57
PROGRAMACIÓN EN PYTHON
break
else:
print("La secuencia ha terminado")
# 0 1 2 3 4
La función zip() recibe como entrada un conjunto de listas, dando como resultado
un conjunto de tuplas, donde cada tupla contiene los elementos con el mismo
número de índice. Es necesario combinar las funciones zip() y list() para obtener
un dato de salida en formato de lista.
a = [1, 2, 3]
b = ["Uno", "Dos", "Tres"]
c = ["One", "Two", "Three"]
d = zip(a, b, c)
print(list(d)) # [(1, 'Uno', 'One'), (2, 'Dos', 'Two'), (3, 'Tres',
'Three')]
En caso de que todas las listas no contengan la misma cantidad de datos, la lista
con menor número de elementos marcará el conjunto de tuplas creado.
a = [1, 2]
b = ["Uno", "Dos", "Tres"]
c = ["One", "Two", "Three"]
d = zip(a, b, c)
print(list(d)) # [(1, 'Uno', 'One'), (2, 'Dos', 'Two')]
El uso de zip() en estructuras for, permite recorrer dos o más listas en paralelo en
una única iteración.
Las variables ‘nombre’ y ‘edad’ toman los datos de las listas ‘nombres’ y ‘edades’
respectivamente, tomando los valores de los elementos con el mismo índice en
cada iteración.
Ejercicio 45.
Desarrolla un programa que solicite un número entero mayor que cero y muestre
sus divisores. Verificar datos de entrada de usuario.
58
PROGRAMACIÓN EN PYTHON
EJEMPLO 1 EJEMPLO 2
Escriba un número entero mayor que cero : 36 Escriba un número entero mayor que cero : -12
¡¡ERROR!! Sólo se admiten números enteros
Los divisores de 36 son: 1 2 3 4 6 9 12 18 36
positivos.
EJEMPLO 3 EJEMPLO 4
Escriba un número entero mayor que 1: -3 Escriba un número entero mayor que 1: FF
¡¡ERROR!! Sólo se admiten números enteros
¡¡ERROR!! Sólo se admiten datos numéricos.
mayores que 1.
Ejercicio 46.
Escribe un script que solicite un número entero mayor que 1 e indique si el
número es primo o no. Verificar datos de entrada de usuario.
EJEMPLO 1 EJEMPLO 2
Escriba un número entero mayor que 1: 15 Escriba un número entero mayor que 1 : 23
15 no es un número primo. 23 es un número primo.
EJEMPLO 3
Escriba un número entero mayor que 1: FF
¡¡ERROR!! Sólo se admiten datos numéricos.
Ejercicio 47.
Escribe un script que solicite un número entero no negativo y calcule su factorial.
Verificar datos de entrada de usuario. La rutina se repite hasta que alguno de los
datos de entrada sea ‘FIN’ o ‘fin’.
Excepción -> 0! = 1
Ejercicio 48.
Desarrolla un script que solicite dos números enteros y escriba los números pares
e impares que hay entre ellos. Verificar datos de entrada de usuario. La rutina se
repite hasta que alguno de los datos de entrada sea ‘FIN’ o ‘fin’.
EJEMPLO 1 EJEMPLO 2
Escriba un número entero no negativo: 5 Escriba un número entero no negativo: 0
El factorial de 5 (5!) es 120 El factorial de 0 (0!) es 1
59
PROGRAMACIÓN EN PYTHON
EJEMPLO 3 EJEMPLO 4
Escriba un número entero no negativo: -3 Escriba un número entero no negativo: pepe
¡¡ERROR!! Sólo se admiten números enteros no
¡¡ERROR!! Debe de introducir un dato numérico.
negativos.
60