Respuesta a: No me da lo q quiero

#9903

Anónimo
Inactivo

en la comparación dentro del bucle for, incrementas los 2 contadores, independientemente si ha encontrado un “.” o una “@”…

Una opción es separar el incremento de los contadores en 2 condiciones “if”

 

 
<p style=”margin: 0px;”>contador_arroba = 0</p>
<p style=”margin: 0px;”>contador_punto = 0</p>
<p style=”margin: 0px;”>email = input(“Introduce tu email “)</p>
 
<p style=”margin: 0px;”>for i in email:</p>
<p style=”margin: 0px;”>    if i == “@”:</p>
<p style=”margin: 0px;”>        contador_arroba = contador_arroba + 3</p>
<p style=”margin: 0px;”>    elif i == “.”:</p>
<p style=”margin: 0px;”>        contador_punto = contador_punto + 3</p>
 
<p style=”margin: 0px;”>if (contador_arroba <= 4 or contador_punto <= 4):</p>
<p style=”margin: 0px;”>    print(“La direccion de correo ” + str(email) + ” es correcta.”)</p>
<p style=”margin: 0px;”>else:</p>
<p style=”margin: 0px;”>    print(“La direccion de correo ” + str(email) + ” es incorrecta.”)<!–EndFragment–></p>
 

 

por último, un email debe tener una “@” y puede tener varios puntos, de hecho debe tener al menos 1  🙂
así que yo pondría… (es importante que se cumplan las 2 condiciones con and, y no solo una de ellas como haces con or)

if ( contador_arroba == 3 and contador_punto > 0):

 

Me intriga el uso de contadores que crecen de 3 en 3, que creatividad…  X-D