Estructuras Repetitivas
5. Ciclo "for"
5.3. Ejemplos del uso de la sentencia "for"
Consigna 1:
Crear un código en Python que obtenga la suma de todos los números positivos divisibles por tres hasta el mil.
suma = 0
for numero in range(1, 1000): # Desde 1 hasta 999
if numero % 3 == 0:
suma += numero
print("La suma de los números positivos divisibles por 3 hasta 1000 es:", suma)
Explicación:
-
range(1, 1000)
: genera números del 1 al 999. -
if numero % 3 == 0
: verifica si el número es divisible por 3. -
suma += numero
: si lo es, se suma al acumulador.
Resultado:
Este código imprime el total de esa suma. Si quisieras incluir el 1000 (aunque no es divisible por 3), solo habría que cambiar el rango a range(1, 1001)
.
Pregunta:
¿De qué otra forma se le ocurre que se puede obtener el mismo resultado?.Consigna 2:
Realizar un programa en Python que pida al usuario que ingrese un número y calcular su factorial.
numero = int(input("Ingrese un número entero positivo: "))#Por que int??
factorial = 1 #Por que inicilizamos en 1??
if numero < 0:
print("El factorial no está definido para números negativos.")
else:
for i in range(1, numero + 1):
factorial *= i
print(f"El factorial de {numero} es: {factorial}")
Explicación
input(...)
: pide al usuario que ingrese un número.-
int(...)
: convierte el texto ingresado en un número entero. -
if numero < 0
: valida que el número sea positivo. -
for i in range(1, numero + 1)
: recorre desde 1 hasta el número ingresado. -
factorial *= i
: multiplica el acumulador por cada valor del rango. -
Al final, muestra el resultado.
Pregunta:
Consigna 3:
Realizar un programa en Python que cuente la cantidad de vocales y consonantes que tiene una frase ingresada por teclado.
frase = input("Ingrese una frase: ").lower()
vocales = "aeiou"
contador_vocales = 0
contador_consonantes = 0
for caracter in frase:
es_vocal = False
for vocal in vocales:
if caracter == vocal:
es_vocal = True
if es_vocal:
contador_vocales += 1
elif caracter.isalpha():
contador_consonantes += 1
print("La frase tiene {} vocales y {} consonantes".format(contador_vocales, contador_consonantes))
)
Explicación línea por línea:
-
frase = input("Ingrese una frase: ").lower()
-
Se pide al usuario que escriba una frase.
-
.lower()
convierte toda la frase a minúsculas, para que no haya diferencias entre'A'
y'a'
, por ejemplo.
-
-
vocales = "aeiou"
-
Se define un string con las vocales que se van a buscar.
-
-
contador_vocales = 0
-
Inicializa el contador de vocales.
-
-
contador_consonantes = 0
-
Inicializa el contador de consonante.
-
¿Qué hace caracter.isalpha())?
Evalúa si el carácter actual (caracter
) es una letra del alfabeto, es decir, si es una letra y no un número, espacio, signo de puntuación, etc.
Por ejemplo:
"a".isalpha() → True
"Z".isalpha() → True
"ñ".isalpha() → True
"á".isalpha() → True (aunque acentuada, sigue siendo letra)
"3".isalpha() → False
"!".isalpha() → False
" ".isalpha()→False`
Vemos otra versión que hace lo mismo pero sin range.
frase = input("Ingrese una frase: ").lower()#para evitar que a sea distinta de A
vocales = "aeiou"
contador_vocales = 0
contador_consonantes = 0
for i in frase: #vemos que aqui i toma cada valor del string frase
es_vocal=False
for j in vocales:#vemos que aqui j toma cada valor del string vocales
if i == j:
es_vocal = True
if es_vocal:
contador_vocales+=1
elif i.isalpha():
contador_consonantes+=1
print("La frase tiene {} vocales, y {} consonantes".format(contador_vocales,contador_consonantes))
¿Qué hace i.isalpha()?
Evalúa si el carácter actual i
que toma como valor cada caracter de frace , y verifica que letra del alfabeto, es decir, si es una letra y no un número, espacio, signo de puntuación, etc.
Preguntas:
- Según su uso, ¿Qué tipo de variable es "es_vocal"?.
- ¿Qué es "isalpha( )"?.
- ¿Existe una función de "isalpha( )" en el código?.