El ciclo while
ejecuta un bloque de instrucciones mientras una condición booleana sea verdadera.
i: int = 0
while(i <= 6):
print(i)
i = i + 1 # Similar a i += 1
Resultado por terminal:
0
1
2
3
4
5
6
- Condición de parada: Evalúa si el bloque de instrucciones debe ejecutarse.
- Bloque de instrucciones: Conjunto de instrucciones que se ejecutan mientras la condición sea verdadera.
- Actualización: Modificación de variables para que eventualmente la condición de parada sea falsa y termine el ciclo.
Python no tiene un ciclo do-while
nativo, pero se puede simular usando una bandera junto con while.
flag: bool = True
while flag or <condicion>:
flag = False
# Bloque de instrucciones
flag: bool = True
while flag or (num < 65 or num > 90):
flag = False
num = int(input("Ingrese un entero: "))
print("El entero corresponde al caracter " + chr(num))
Resultado por terminal: (Cuando el usuario ingresa 70 como input)
Ingrese un entero: 70
El entero corresponde al caracter F
continue
: Salta a la siguiente iteración del ciclo.break
: Termina el ciclo inmediatamente.
i: int = 0
while(i < 10):
i += 1
if i == 5:
continue
print(i)
Resultado por consola:
1
2
3
4
6
7
8
9
10
sumatory: int = 0 # Ojo con usar palabras reservadas del lenguaje
while True:
num = int(input("Ingrese un entero o 0 para salir: "))
if num == 0:
break
sumatory += num
print("La suma de los numeros ingresados es " + str(sumatory))
resultado por consola: (Cuando el usuario ingresa 8, 5, 6, 6, 0)
Ingrese un entero o 0 para salir: 8
Ingrese un entero o 0 para salir: 5
Ingrese un entero o 0 para salir: 6
Ingrese un entero o 0 para salir: 6
Ingrese un entero o 0 para salir: 0
La suma de los numeros ingresados es 25
El ciclo for
en Python itera sobre los elementos de cualquier secuencia (una lista o una cadena de texto), en el orden que aparecen en la secuencia.
for <elemento> in <coleccion>:
# Bloque de código a ejecutar
fruits = ["Tomate de arbol", "Maracuya", "Guayaba"]
for f in fruits:
print(f)
Resultado por consola:
Tomate de arbol
Maracuya
Guaya
# Operador in - pertenencia
fruits = ["Tomate de arbol", "Maracuya", "Guayaba"]
print("Maracuya" in fruits) # Salida: True
print("Fresa" in fruits) # Salida: False
fruits = ["Pera", "Maracuya", "Guayaba", "Lulo", "Granadilla"]
for f in fruits:
print(f)
if f == "Guayaba":
break # Termina el ciclo
Resultado por consola:
Pera
Maracuya
Guayaba
La función range() devuelve una secuencia de números, comenzando desde 0 por defecto, e incrementa en 1 (por defecto), y termina en un número especificado.
for num in range(6):
print(num)
Resultado por consola:
0
1
2
3
4
5
for num in range(-2, 8, 2):
print(num)
Resultado por consola:
-2
0
2
4
6
Las listas en Python son secuencias de elementos que pueden almacenar datos heterogéneos, incluyendo otros arreglos o listas. La mutabilidad es una característica clave de las listas, permitiendo modificarlas tras su definición.
empty_list = []
mixed_list = [1, "dos", 3.0, [4, "cinco"]]
- Acceso: Se realiza mediante el índice del elemento, comenzando por 0.
- Modificación: Puedes cambiar el valor de un elemento directamente utilizando su índice.
# Acceso
first_element = mixed_list[0] # Salida: 1
# Modificación
mixed_list[1] = "dos modificado" # Nuevo valor de la lista [[1, "dos modificado", 3.0, [4, "cinco"]]]
Operador +
: Une dos listas.
new_list = [1, 2, 3] + [4, 5, 6]
Resultado:
[1, 2, 3, 4, 5, 6]
Operador *
: Repite los elementos de una lista un número determinado de veces.
repeated_list = [1, 2, 3] * 2
Resultado:
[1, 2, 3, 1, 2, 3]
- Indexación: Acceder a un elemento específico.
- Slicing: Obtener una sublista utilizando [inicio:fin:incremento].
# Indexación
element = mixed_list[1]
# Slicing
sublist = mixed_list[1:3]
Resultado:
## en la asignación variables
element = 'dos'
sublist = ['dos', 3.0]
Métodos Útiles
append(<elemento>)
: Agrega un elemento al final.pop([<índice>])
: Elimina y retorna un elemento por índice.insert(<índice>, <elemento>)
: Inserta un elemento en una posición.remove(<elemento>)
: Elimina la primera aparición de un elemento.sort([reverse=<bool>])
: Ordena los elementos de la lista.
Uso del Ciclo for
.
for element in mixed_list:
print(element)
Resultado por consola:
1
dos
3.0
[4, 'cinco']
i: int = 0
while i < len(mixed_list):
print(mixed_list[i])
i += 1
resultado por consola:
1
dos
3.0
[4, 'cinco']
Permiten crear listas de manera concisa a partir de una secuencia existente.
cubes = [x**3 for x in range(5)]
Resultado:
## En la asignación de la variable
cubes = [0, 1, 8, 27, 64]
Una función recursiva se llama a sí misma para resolver un problema. Debe tener un caso base para terminar la recursión y un caso recursivo que se acerque al caso base.
def recursive_factorial(n: int) -> int:
if n == 1:
return 1
else:
return n * recursive_factorial(n-1)
Las funciones lambda permiten definir funciones pequeñas y anónimas en una sola línea.
if __name__ == "__main__":
a = int(input("Ingrese numero a: "))
b = int(input("Ingrese numero b: "))
sumatory = (lambda x, y: x + y)(a,b)
print("La suma de " + str(a) + " y " + str(b) + " es " + str(sumatory))
#print(f"La suma de {a} y {b} es {sumatory}") -> Otro método
Resultado por consola: (Cuando el usuario ingresa los valores 6, 5)
Ingrese numero a: 6
Ingrese numero b: 5
La suma de 6 y 5 es 11
Permiten definir funciones con argumentos que tienen un valor predeterminado.
def greet(name, message="Hola"):
print(f"{message}, {name}!")
greet("Mundo") # Usa el mensaje por defecto
greet("Mundo", "Adiós") # Usa el mensaje proporcionado
Resultado por consola:
Hola, Mundo!
Adiós, Mundo!
Permiten definir funciones que aceptan un número variable de argumentos.
def addAll(*args):
return sum(args)
print(addAll(1, 2, 3, 4))
Resultado por consola: 10
Desarrolle la mayoría de ejercicios en clase. Para cada punto cree un programa individual. Al finalizar suba todo a un repo y súbalo al canal reto_1 en slack.
-
Crear una función que realice operaciones básicas (suma, resta, multiplicación, división) entre dos números, según la elección del usuario, la forma de entrada de la función será los dos operandos y el caracter usado para la operación. entrada:
(1,2,"+")
, salida(3)
. -
Realice una función que permita validar si una palabra es un palíndromo. Condición: No se vale hacer slicing para invertir la palabra y verificar que sea igual a la original.
-
Escribir una función que reciba una lista de números y devuelva solo aquellos que son primos. La función debe recibir una lista de enteros y retornar solo aquellos que sean primos.
-
Escribir una función que reciba una lista de números enteros y retorne la mayor suma entre dos elementos consecutivos.
-
Escribir una función que reciba una lista de string y retorne unicamente aquellos elementos que tengan los mismos caracteres. e.g. entrada:
["amor", "roma", "perro"]
, salida["amor", "roma"]
P.D. El repositorio debe tener los archivos .py de los 5 puntos, uno por cada ejercicio. Asimismo una corta explicación de como llego a la solución.