Python - Duda sobre While en Python

 
Vista:
Imágen de perfil de Román

Duda sobre While en Python

Publicado por Román (4 intervenciones) el 20/10/2021 08:34:15
Saludos a todos.

Estoy realizando un ejercicio probando el uso del While y creo que no lo estoy implementando adecuadamente en el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
email = input("Introduce tu dirección de correo electrónico: ")
 
arroba = email.count('@')
 
while (arroba != 1 or email.rfind('@') == (len(email)-1) or email.find('@') == 0):
 
    print("La dirección de correo electrónico no es correcta.\nRecuerda que el e-mail no puede contener"
    "dos arrobas (@@), tampoco puede tener arroba al principio o al final de la dirección.")
    email = input("Introduce tu dirección de correo electrónico: ")
 
 
else:
 
    print ("La dirección de correo electrónico introducida es:", email)

El programa solicita introducir una dirección de correo electrónico, verifica si tiene dos @@ y también chequea si el e-mail tiene una arroba al principio o al final, indicando que la dirección introducida no es correcta.

Todo funciona si coloco de primero un email correcto (ejemplo: [email protected]), pero si coloco un correo electrónico con dos arrobas o con una arroba al principio o al final, se queda estancado en el bucle While así ingrese un e-mail correcto (ejemplo: [email protected]).

Agradezco todo el apoyo que puedan brindar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Duda sobre While en Python

Publicado por Francisco Javier (196 intervenciones) el 20/10/2021 13:05:15
Buenas el else al final no viene a cuento si no hay un if, para sacarlo del bucle sobra simplemente quitandole de la indentacion del bucle whilr y la apreciacion de arroba debes incluirla dentro del bucle a la hora de repetir el emil. Un saludo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
email = input("Introduce tu dirección de correo electrónico: ")
 
arroba = email.count('@')
 
while (arroba != 1 or email.rfind('@') == (len(email)-1) or email.find('@') == 0):
 
    print("La dirección de correo electrónico no es correcta.\nRecuerda que el e-mail no puede contener"
    "dos arrobas (@@), tampoco puede tener arroba al principio o al final de la dirección.")
    email = input("Introduce tu dirección de correo electrónico: ")
    arroba = email.count('@')
 
 
 
 
print ("La dirección de correo electrónico introducida es:", email)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Román

Duda sobre While en Python

Publicado por Román (4 intervenciones) el 22/10/2021 04:35:54
Gracias por las sugerencias. Ahora el programa funciona de manera correcta.
En efecto, había olvidado por completo colocar el recuento de las arrobas dentro del while.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar