# Cread una función a la que le pasemos un nombre y nos devuelva una cadena con un saludo # saludo("Ana") -> "Hola Ana" def saludo(nombre): resultado = "Hola " + nombre return resultado # Cread una función a la que le pasamos una cadena y una cantidad y nos devuelve la cadena repetida esa cantidad # repetir("Ana",3)->"AnaAnaAna" def repetir(cadena, cantidad): # código que nos repita una cadena una cantidad de veces # Variable que me servirá de 'acumulador' resultado = "" # Bucle que me recorra una serie de elementos o, como en este caso, que me repita algo un número # determinado de veces for i in range(0, cantidad): # Hago la operación que sea: concatenar, sumar, contar, multiplicar... resultado += cadena return resultado def repetir2(cadena, cantidad): return cadena * cantidad def nombreTriple(nombre): return (f'{nombre}\n' * 3) # Lo estamos imprimiendo directamente por la consola IMPURA nombreTriple('Jenn') # Cread una función a la que le pasamos un número y nos devuelve True si es par y False si no lo es # esPar(5)->False esPar(80)->True def esPar(numero): if numero % 2 == 0: resultado = True else: resultado = False return resultado def esParCompacta(numero): # En general siempre que tenemos un if que devuelve true o false podemos devolver directamente la condición del if return numero % 2 == 0 repetida = repetir("Hola", 5) print(repetida) repetida = repetir2("Hola", 5) print(repetida) print("hola" * 5) print(nombreTriple("Ana")) nombrerepetido = nombreTriple("Federico") print(esPar(5)) print(esPar(6)) print(esParCompacta(5)) print(esParCompacta(6))
Mes: abril 2025
Ejercicio funciones
# Cread una función a la que le pasemos un nombre y nos devuelva una cadena con un saludo # saludo("Ana") -> "Hola Ana" # Cread una función a la que le pasamos una cadena y una cantidad y nos devuelve la cadena repetida esa cantidad # repetir("Ana",3)->"AnaAnaAna" # Cread una función a la que le pasamos un número y nos devuelve True si es par y False si no lo es # esPar(5)->False esPar(80)->True
Ejemplos funciones
# Programación funcional # lo que hemos estado haciendo hasta ahora es lineal # cada instrucción sigue a la siguiente hasta que acabamos # El primer paso para una programación estructurada es usar funciones # ¿Qué es una función? # Bloque de código reutilizable que permite recibir parámetros y devolver un resultado # sintaxis def nombre_de_la_funcion(parametros): # Esta función no tiene parámetros pero uso () igual def saludar(): # Estas tres líneas se ejecutan cuando se llama a la función print("Hola") print("¿Qué tal estás") print("Yo muy bien") saludar() print("------") saludar() print("------") # Incorporamos un parámetro def saludarNombre(nombre): print(f"Hola {nombre}") print("¿Qué tal estás") print("Yo muy bien") saludarNombre("Ana") print("------") saludarNombre("Juan") # Añadir devolver un resultado def suma(a, b): return a + b print(suma(2, 3)) print(suma(8, 10)) resultado = suma(19, 35) print(resultado) # Un ejemplo más complejo def contarLetra(cadena, letra): contador = 0 for c in cadena: if c == letra: contador += 1 return contador total = contarLetra("mancha", "a") print(total) total = contarLetra("En un lugar de la mancha", "n") print(total)
Break y continue
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