# bucle for se utiliza para recorrer secuencias # sintaxis: # for elemento in secuencia: # Bucle for para recorrer una serie numérica # Elemento: i # Secuencia: range(1,6) range nos genera un rango de números desde el primero hasta el último menos uno # range(1,4)->[1,2,3] # range(10,21)->[10,11,12,13,14,15,16,17,18,19,20] for i in range(1, 6): print(i) # El ejercicio de los cuadrados: mostrar los cuadrados del 1 al 10 for i in range(1, 11): print(i ** 2) for letra in "En un lugar de la mancha": print(letra, end=" ") palabras = 1 for letra in "En un lugar de la mancha": if letra == " ": palabras += 1 print(palabras) # Suma de todos los números del 1 al 100 con bucle for suma = 0 for i in range(1, 101): suma += i print(suma) # Esto en python es una lista frutas = ["manzana", "banana", "cereza"] for fruta in frutas: print(fruta) # range(max): Un iterable de números enteros consecutivos que empieza en 0 y acaba en max - 1 for i in range(10): print(i) # del 0 al 9 # range(min, max): Un iterable de números enteros consecutivos que empieza en min y acaba en max - 1 for i in range(1, 11): print(i) # del 1 al 10 # range(min, max, step): Un iterable de números enteros consecutivos que empieza en min # acaba en max - 1 y los valores se van incrementando de step en step. # Este último caso simula el bucle for con variable de control. for i in range(1, 100, 5): print(i) # del 1 al 100 en pasos de 5 # Nos permite poner pasos negativos for i in range(10,-1,-1): print(i) # Sumar todos los números pares del 1 al 100 (incluidos) suma = 0 for i in range(1, 101): if i % 2 == 0: suma += i print(suma) suma = 0 for i in range(0, 101, 2): suma += i print(suma) # Mostrar la tabla de multiplicar del 7 # 1x7=7 2x7=14 3x7=21....10x7=70 for i in range(1, 11): print(f"{i} x 7 = {i * 7}") # Pedir una cadena al usuario y decirle cuantas letras 'a' tiene # hola->1 patata->3 # Pedir una cadena al usuario: sabemos # Un bucle para recorrer las letras (lo hemos visto en la teoría) # Dentro de ese bucle vamos a mirar si la letra es la 'a' contador = 0 cadena = input("Dime una cadena y te diré cuantas aes tiene ") for letra in cadena: if letra == "a": contador += 1 print("El número de aes en '",cadena,"' es ",contador)
Soluciones while
# 1.- Pedir un número al usuario y hacer una cuenta regresiva desde ese número # Pedir un número numero = int(input("Dame un número entero")) # Contar desde el número hasta el cero while numero >= 0: # Imprimir esa 'cuenta' para ver la regresión print(numero) numero = numero - 1 # numero-=1 # Sumar todos los números pares del 1 al 100 (incluidos) # ¿Se averiguar todos los números pares del 1 al 100? # ¿Se mostrar todos los número del 1 al 100? # ¿Se cuando un número es par o impar? # ¿Se sumar en una variable? numero = 1 suma = 0 while numero <= 100: if numero % 2 == 0: suma += numero numero += 1 print(suma) numero = 0 suma = 0 while numero <= 100: suma += numero numero += 2 print(suma) # Mostrar la tabla de multiplicar del 7 # 1x7=7 2x7=14 3x7=21....10x7=70 # Esto SI es un bucle # Con qué numero empieza el bucle y con cual acaba # Del 1 al 10 numero = 1 while numero <= 10: print(f"{numero} x 7 = {numero * 7}") numero += 1 # Pedir números al usuario hasta que introduzca un 0. Mostrar el número mayor # Pedir un número al usuario (lo sabemos) # Saber un bucle hasta que un valor sea 0 # Saber cual es el mayor de una serie de números # Pido un número al usuario numero = int(input("Dame un número entero")) # De momento me lo quedo. Lo que es correcto es el mayor mayor = numero # Mientras el usuario no me introduzca un 0, voy pidiendo números while numero != 0: numero = int(input("Dame un número entero")) # Si el número que me ha dado el usuario es mayor que el que ya tenía, pues me quedo con él if numero > mayor: mayor = numero print(mayor) # Escribir un programa que pida nombres y salga cuando escribamos la palabra ‘salir’ # Pido un nombre # bucle hasta que digan salir nombre = "" while nombre != "salir": nombre = input("Dime un nombre") nombre = "" lista = "" while nombre != "salir": nombre = input("Dime un nombre") lista += nombre + " " print(lista) # Modificar el programa anterior para que salga cuando repitamos el nombre # cuando el nombre que me introducen es igual al anterior nombre = "" anterior = "#" while nombre != anterior: anterior = nombre nombre = input("Dime un nombre") # Escribir un programa que calcule la suma de todos los múltiplos de 5 menores de 100 numero = 0 suma = 0 while numero <= 100: suma += numero numero += 5 print(suma) # Pedir un número y calcular el factorial (factorial de 5. 5*4*3*2*1) # Pido un número # Hago un bucle desde donde hasta donde? # Empiezo en el número y acabo en el 1 numero = int(input("Dime un número")) factorial = 1 while numero >= 1: factorial = factorial * numero numero -= 1 print(factorial) # Mostrar los cuadrados de los números del 1 al 10 # bucle del 1 al 10 numero=1 while numero<=10: print(numero**2) numero+=1
Ejercicios While
1.- Pedir un número al usuario y hacer una cuenta regresiva desde ese número
2.- Sumar todos los números pares del 1 al 100 (incluidos)
3.- Mostrar la tabla de multiplicar del 7
4.- Pedir números al usuario hasta que introduzca un 0. Mostrar el número mayor
5.- Escribir un programa que pida nombres y salga cuando escribamos la palabra ‘salir’
6.- Modificar el programa anterior para que salga cuando repitamos el nombre
7.- Escribir un programa que calcule la suma de todos los múltiplos de 5 menores de 100
8.- Pedir un número y calcular el factorial (factorial de 5. 5*4*3*2*1)
9.- Mostrar los cuadrados de los números del 1 al 10
Soluciones if
#Escribe un programa que solicite al usuario su edad y determine si es menor o # igual a 18 años. Si es menor o igual a 18 años, muestra el mensaje # “Eres menor de edad”, de lo contrario, muestra “Eres mayor de edad”. edad=int(input("Introduce tu edad")) if edad>=18: print("Eres mayor de edad") else: print("Eres menor de edad") # Crea un programa que pida al usuario dos números y determine cuál es el mayor # de los dos números. Si son iguales, muestra un mensaje que indique que los números # son iguales. num1=float(input("Dime el primer número")) num2=float(input("Dime el segundo número")) if num1>num2: print(f"El mayor es {num1}") print("El mayor es", num1) print("El mayor es"+str(num1)) elif num2>num1: print(f"El mayor es {num2}") else: print("Son iguales") # Desarrolla un programa que pida al usuario un número entero y determine si es par # o impar. Si es par, muestra “Es un número par”, si es impar, muestra # “Es un número impar”. num=float(input("Dime un número")) if num%2==0: print(f"El numero {num} es par") else: print(f"El numero {num} es impar") # Escribe un programa que solicite al usuario su calificación en un examen y # determine si ha aprobado o reprobado. Si la calificación es igual o superior # a 60, muestra “Aprobado”, de lo contrario, muestra “Reprobado”. nota=float(input("Dime tu calificación")) if nota>=60: print(f"Estás aprobado") else: print(f"Estás suspendido") # Un usuario puede entrar a una fiesta si es mayor de 18 años y tiene entrada VIP o es invitado. edad = 20 vip = False invitado = True # Tu condición va aquí: if edad >= 18 and (vip or invitado): print("Acceso permitido") else: print("Acceso denegado") # Un sistema da acceso si el usuario es "admin" y la clave es "1234", # pero no está bloqueado. usuario = "admin" clave = "1234" bloqueado = False # Tu condición: if usuario=="admin" and clave=="1234" and not bloqueado: # bloqueado==False print("Login exitoso") else: print("Acceso denegado") # Un cliente tiene descuento si es mayor de 65 años o si tiene # carnet de estudiante válido y es mayor de 18. edad = 19 tiene_carnet = True # Tu condición: if edad>65 or (tiene_carnet and edad>18): print("Tiene descuento") else: print("No tiene descuento") # Un cliente tiene descuento : # su edad está entre 60 y 80: edad>=60 and edad<=80 # tiene carnet y más de 18 años: tiene_carnet and edad>=18 # no tiene carnet y es menor de 10 años: not tiene_carnet and edad<10 # las tres condiciones estarán unidas con un or edad = 19 tiene_carnet = True # Tu condición: # if edad>=60 and edad<=80 or tiene_carnet and edad>=18 or not tiene_carnet and edad<10: if (edad>=60 and edad<=80) or (tiene_carnet and edad>=18) or (not tiene_carnet and edad<10): print("Tiene descuento") else: print("No tiene descuento") # Un estudiante aprueba si su nota es mayor o igual a 6 y # no está inhabilitado por asistencia. nota = 6.5 asistencia_suficiente = True # Tu condición: if nota>=6 and asistencia_suficiente: print("Aprobado") else: print("Reprobado") # Muestra un mensaje si el usuario no ha aceptado los términos: acepta_terminos = False if not acepta_terminos: print("Debes aceptar los términos para continuar")
Ejercicios if
- Escribe un programa que solicite al usuario su edad y determine si es menor o igual a 18 años. Si es menor o igual a 18 años, muestra el mensaje “Eres menor de edad”, de lo contrario, muestra “Eres mayor de edad”.
- Crea un programa que pida al usuario dos números y determine cuál es el mayor de los dos números. Si son iguales, muestra un mensaje que indique que los números son iguales.
- Desarrolla un programa que pida al usuario un número entero y determine si es par o impar. Si es par, muestra “Es un número par”, si es impar, muestra “Es un número impar”.
- Escribe un programa que solicite al usuario su calificación en un examen y determine si ha aprobado o reprobado. Si la calificación es igual o superior a 60, muestra “Aprobado”, de lo contrario, muestra “Reprobado”.
🧪 Ejercicio 1: Acceso a una fiesta
Un usuario puede entrar a una fiesta si es mayor de 18 años y tiene entrada VIP o es invitado.
Completa el código para imprimir “Acceso permitido” o “Acceso denegado”:
edad = 20 vip = False invitado = True # Tu condición va aquí: if edad >= 18 and (vip or invitado): print("Acceso permitido") else: print("Acceso denegado")
🧪 Ejercicio 2: Validación de login
Un sistema da acceso si el usuario es
"admin"
y la clave es"1234"
, pero no está bloqueado.usuario = "admin" clave = "1234" bloqueado = False # Tu condición: if : print("Login exitoso") else: print("Acceso denegado")
🧪 Ejercicio 3: Acceso a descuentos
Un cliente tiene descuento si es mayor de 65 años o si tiene carnet de estudiante válido y es mayor de 18.
edad = 19 tiene_carnet = True # Tu condición: if : print("Tiene descuento") else: print("No tiene descuento")
🧪 Ejercicio 4: Evaluación académica
Un estudiante aprueba si su nota es mayor o igual a 6 y no está inhabilitado por asistencia.
nota = 6.5 asistencia_suficiente = True # Tu condición: if : print("Aprobado") else: print("Reprobado")
🧪 Ejercicio 5: Uso del operador
not
Muestra un mensaje si el usuario no ha aceptado los términos:
acepta_terminos = False if : print("Debes aceptar los términos para continuar")
Condiciones if complejas
sueldo = 500 irpf = 15 # Tenemos esta tabla: hasta 2000 10%, hasta 3000 12% hasta 5000 15% resto 25% if sueldo < 2000: irpf = 10 else: if sueldo < 3000: irpf = 12 else: if sueldo < 5000: irpf = 15 else: irpf = 25 print(irpf) # Lo de arriba se puede reescribir usando la estructura elif if sueldo < 2000: irpf = 10 elif sueldo < 3000: irpf = 12 elif sueldo < 5000: irpf = 15 else: irpf = 25 print(irpf) # Sintaxis básica: si se cumple la condición se ejecuta lo que está dentro del if if sueldo < 1000: print("El sueldo no puede ser menos que el SMI") # esto está dentro del if print("Se viene inspección") # esto está fuera del if print(sueldo) # sintaxis con else: si se cumple se ejecuta lo del if y si no, lo del else if sueldo > 3000: print("Sueldazo") else: print("Sueldo común") # sintaxis con elif # cada elif plantea una nueva condición que se evalua, como si fuera un if # pero queda más claro if sueldo < 1000: # Los sueldos menores de 1000 print("Inspeccion") elif sueldo < 2000: # Los menores de 2000 print("Sueldo bajo") elif sueldo < 4000: # De 4000 print("Buen sueldo") else: # Los mayores de 4000 (else del último if) print("Sueldazo") # Las condiciones pueden ser complejas y combinar operadores if sueldo < 1000 or sueldo > 9000: # Aquí combino dos condiciones con un or print("Sueldo incorrecto") # Pueden ser lo complejas que hagan falta if (sueldo < 1000 or sueldo > 9000) and sueldo % 10 == 0: print("Sueldo incorrecto que acaba en cero") # Puedo tener if dentro de otros ifs (ifs anidados) # Puede ser lo complicado que haga falta if sueldo > 5000: if sueldo % 10 == 0: print("Sueldo mayor de 5000 que acaba en 0") else: print("Sueldo mayor de 5000 que NO acaba en 0") else: print("Sueldo menor de 5000") # Veamos un ejemplo de esto # Calcular el precio de envío de un paquete # Tenemos lo siguiente: # Barcelona: 5€ da lo mismo el peso # Girona o Tarragona 5€ si pesa menos de 10 kilos y 10€ si pesa más # Resto de ciudades: hasta 10k 5€, hasta 20k 10€, hasta 30k 15 € resto 30€ ciudad = "Logroño" peso = 12 precio = 0 if ciudad == "Barcelona": precio = 5 else: if ciudad == "Girona" or ciudad == "Tarragona": # calculo los precios if peso < 10: precio = 5 else: precio = 10 else: if peso < 10: precio = 5 elif peso < 20: precio = 10 elif peso < 30: precio = 15 else: precio = 30 print(precio)
elif en python
sueldo = 2500 irpf = 15 # Tenemos esta tabla: hasta 2000 10%, hasta 3000 12% hasta 5000 15% resto 25% if sueldo < 2000: irpf = 10 else: if sueldo < 3000: irpf = 12 else: if sueldo < 5000: irpf = 15 else: irpf = 25 print(irpf) # Lo de arriba se puede reescribir usando la estructura elif if sueldo < 2000: irpf = 10 elif sueldo < 3000: irpf = 12 elif sueldo < 5000: irpf = 15 else: irpf = 25 print(irpf)
Condicionales python
# Estructura de control: Nos permite definir el flujo del programa # if : comprobar una condición y si se cumple se ejecuta un código # y, opcionalmente, si no se cumple, se ejecuta otro edad=int(input("Dime tu edad")) if edad>=18: print("Bienvenido a la web") print("Eres bienvenido/a") print("Disfruta del contenido") else: print("Eres menor de edad") print("Introduce un codigo de autorización si quieres acceder") codigo=input("Dime el codigo") if codigo=="1234": print("Bienvenido") else: print("Código incorrecto") print("Esto está fuera del if y se ejecuta tanto si se cumple la condición como si no") # Comparaciones # >, >=, <, <= , ==, != # La igualdad se utilizan dos signos = if edad==18: print("Bienvenido a la mayoría de edad") # Para diferente exclamación e igual != if edad!=18: print("No tienes 18 años") # Recordad que vimos los operadores booleanos # and, or, not if edad>=18 and edad<=25: print("Tienes descuento de carnet joven (entre 18 y 25)") if edad<18 or edad>65: print("Tienes descuento de niño o jubilado (menor de 18 o mayor de 65") # recordad la precedencia de los operadores, el and va primero if edad<18 or edad>20 and edad<30: print("Esto se cumple si la edad es menor de 18") print("O la edad está entre 20 y 30") # Recordad que si dudamos podemos usar paréntesis, que son gratis: if edad<18 or (edad>20 and edad<30): print("Esto se cumple si la edad es menor de 18") print("O la edad está entre 20 y 30") if not edad>=18: print("Eres menor") if edad<18: print("Es lo mismo") # Mini ejercicio planteado # Vamos a hacer un if que nos de un descuento si la edad es 40 o 50
Soluciones variables
import datetime ahora = datetime.datetime.now() anio_actual=ahora.year anio_actual=2025 anio_nacimiento=int(input("Dime tu año de nacimiento")) print(f"Este año tendrás {anio_actual-anio_nacimiento} años") # Calcular el área de un triángulo base=float(input("Dime la base")) altura=float(input("Dime la altura")) area=base*altura/2 print("El área es ",area) # saber hacer esto es importante porque puede ser que queramos # almacenar el valor, no imprimirlo print("El área es "+str(area)) print(f"El área es {area}") # Pido el número numero=int(input("Dime un numero del 10 al 99")) decenas=numero//10 unidades=numero%10 suma=decenas+unidades print("La suma es ",suma) # Pido los minutos total_minutos=int(input("Dime cuantos minutos")) # calculo horas y minutos horas=total_minutos//60 minutos=total_minutos%60 # muestro print(f"{horas} horas y {minutos} minutos")
Ejemplos operadores
precio=80 personas=7 print(precio/personas) print(precio//personas) print(2**4) # Modulo % Resto de la división print(17%5) # ¿Cómo saber si un número es par o impar? # Si el módulo 2 es 0, es par # si el módulo 2 es 1, es impar print(8%2) # 0, es par print(81%2) # 1, es impar numero=9 print(numero%2) print(numero%3) giro=850 print(giro%360)