16. Bucles III

Vídeo

Notas personales

Veamos algunas opciones de la función print() a la hora de imprimir el valor de variables durante la ejecución de un bucle:

for i in range(5):
    print(f"valor de la variable {i}")

# valor de la variable 0
# valor de la variable 1
# valor de la variable 2
# valor de la variable 3
# valor de la variable 4

La f que aparece antes del texto entrecomillado indica el uso de funciones f, que permiten interesantes opciones de cara a la impresión de textos en la consola. En esta ocasión, concatena la cadena de caracteres con el valor que toma la variable en cada iteración, indicada por {i}.

El tipo range admite el uso de argumentos adicionales:

for i in range(5, 10):
    print(f"valor de la variable {i}")

# valor de la variable 5
# valor de la variable 6
# valor de la variable 7
# valor de la variable 8
# valor de la variable 9
for i in range(5, 50, 5):
    print(f"valor de la variable {i}")

# valor de la variable 5
# valor de la variable 10
# valor de la variable 15
# valor de la variable 20
# valor de la variable 25
# valor de la variable 30
# valor de la variable 35
# valor de la variable 40
# valor de la variable 45

La función len también resulta de utilidad a la hora de emplear bucles for. Veámosla en acción retomando el ejemplo de la validación de una dirección de correo electrónico visto en la lección anterior:

valido = False

email = input("Introduce tu email: ")

for i in range(len(email)):
    if email[i] == "@":
        valido = True

if valido:
    print("El email es correcto.")
else:
    print("El email no es correcto.")

Ejercicio 1: crea un programa que muestre los números impares del 1 al 100. Los números deberán aparecer una al lado del otro sin salto de línea.

for i in range(1, 100, 2):
    print(i, end=" ")

Ejercicio 2: crea un programa que pida por teclado introducir una contraseña. La contraseña no podrá tener menos de 8 caracteres ni espacios en blanco. Si la contraseña es correcta, el programa imprime ‘‘Contraseña OK’’. En caso contrario imprime ‘‘Contraseña errónea’’.

def evalua_password(password):
    valido = True
    if len(password) < 8 or " " in password:
        valido = False
    return valido


password = input("Introduce contraseña: ")

if evalua_password(password):
    print("Constraseña OK.")
else:
    print("Contraseña errónea.")

Ejercicio 3: crea un programa que evalúe si una dirección de correo electrónico es válida o no en función de si tiene @ o . Hay que tener en cuenta que la dirección se considera correcta si solo tiene una @ y si tiene uno o más ..

def evalua_mail(mail):
    arroba = False
    punto = False

    if "." in mail:
        punto = True

    contador = 0
    for i in mail:
        if i == "@":
            contador += 1

    if contador == 1:
        arroba = True

    return punto and arroba


mail = input("Introduce dirección de correo electrónico: ")

if evalua_mail(mail):
    print("Dirección de correo electrónico VÁLIDA.")
else:
    print("Dirección de correo electrónico INVÁLIDA.")

Código fuente

El código fuente y los posibles ficheros externos generados correspondientes a esta lección se encuentran disponibles para su consulta en la carpeta /lecciones/16/ del repositorio.

Anterior
Siguiente