for i in range(1, 100): print(i) if i == 16: break cadena = input("Dime una cadena") tiene = False for letra in cadena: if letra == "ñ": tiene = True break if tiene: print("Tiene Ñ") else: print("No hay ninguna Ñ") numero = int(input("Dime un número")) esPrimo = True for i in range(2, numero): if numero % i == 0: esPrimo = False break if esPrimo: print(f"{numero} es primo") else: print(f"{numero} no es primo") # continue Se salta las instrucciones que hay a continuación y sigue con el bucle numero = 100 suma = 0 for i in range(1, numero + 1): if i % 2 == 0: continue print(i) suma += i cadena = input("Dime una cadena ") resultado = "" for letra in cadena: if letra == "a": continue resultado += letra print(resultado)
Ejemplos bucles anidados
# bucles anidados (y cualquier tipo de anidación) # Nosotros podemos poner bucles dentro de bucles igual que poníamos ifs dentro de ifs for numero in range(1, 11): # Este bucle va del 1 al 10 print(f"Tabla del {numero}: ") # ¿Cuantas veces se imprime esto? 10 veces for i in range(1, 11): # Este también va del 1 al 10 print(f"{i} x {numero} = {i * numero}") # ¿Cuantas veces se imprime esto? 100 veces colores = ["rojo", "verde", "azul"] frutas = ["manzana", "plátano", "uva"] for color in colores: for fruta in frutas: print(color, fruta) # ¿Cuantas veces se imprime esto? 9 veces vocales="aeiou" consonantes="ptd" for vocal in vocales: for consonante in consonantes: print(consonante+vocal) # pa ta da pe te de... # pa pe pi po pu ta te ti to tu da de di do du for consonante in consonantes: for vocal in vocales: print(consonante+vocal) # Reloj for hora in range(1,25): for minuto in range(1,60): print(f"{hora}:{minuto}")
Soluciones ejercicios for
# 1.- Pedir un número al usuario y mostrar la suma de todos los números hasta ese número # 5->1+2+3+4+5=15 numero = int(input("Dime un número")) suma = 0 for i in range(1, numero + 1): suma += i print(suma) # 2.- Pedir una cadena al usuario y escribir si tiene o no tiene alguna 'ñ' # 'Logroño'-> Tiene 'Barceloba'->No tiene cadena = input("Dime una cadena") tiene = False for letra in cadena: if letra == "ñ": tiene = True if tiene: print("Tiene Ñ") else: print("No hay ninguna Ñ") # 3.- Pedir un número al usuario y escribir su tabla de multiplicar numero = int(input("Dime el número ")) for i in range(1, 11): print(f"{i} x {numero} = {i * numero}") # 4.- Pedir dos números al usuario (mínimo y máximo) y calcular la suma entre los dos # 2 y 5 ->2+3+4+5=14 minimo = int(input("Dime el primer número ")) maximo = int(input("Dime el segundo número ")) suma = 0 for i in range(minimo, maximo + 1): suma += i print(suma) # 5.- Pedir una cadena al usuario y escribir una cadena sin la letra 'a' # 'patata' -> ptt 'ayer se fue' -> 'yer se fue' cadena = input("Dime una cadena ") resultado = "" for letra in cadena: if letra != "a": resultado += letra print(resultado)
Ejercicios for
# 1.- Pedir un número al usuario y mostrar la suma de todos los números hasta ese número # 5->1+2+3+4+5=15 # 2.- Pedir una cadena al usuario y escribir si tiene o no tiene alguna 'ñ' # 'Logroño'-> Tiene 'Barceloba'->No tiene # 3.- Pedir un número al usuario y escribir su tabla de multiplicar # 4.- Pedir dos números al usuario (mínimo y máximo) y calcular la suma entre los dos # 2 y 5 ->2+3+4+5=14 # 5.- Pedir una cadena al usuario y escribir una cadena sin la letra 'a' # 'patata' -> ptt 'ayer se fue' -> 'yer se fue'
Ejemplos for en python
# 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)