Python - Problema para limitar caracteres.

 
Vista:
sin imagen de perfil
Val: 9
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Problema para limitar caracteres.

Publicado por Aaron (3 intervenciones) el 26/11/2020 02:14:47
Alguien que pueda resolver esto porque solo puedo limitar el máximo pero no el mínimo.

a.- En el usuario debe tener mínimo 3 y máximo 20 caracteres sin puntos, si no cumple esta condición debe enviar el mensaje “Correo email mal ingresado, intente nuevamente “
b.- Debe haber un único @, si hay más de uno, debe enviar el mensaje “Correo email mal ingresado, intente nuevamente “, y si no hay ningún @ también debe enviar el mensaje de error.
c.- En el dominio debe haber un mínimo de 3 y máximo 20 caracteres sin punto, luego un punto, un mínimo de 2 caracteres y un máximo de 3 caracteres, si no se cumplen estas condiciones, se debe enviar el mensaje “Correo email mal ingresado, intente nuevamente”

Ejemplo: [email protected]
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 algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema para limitar caracteres.

Publicado por algoritmo (245 intervenciones) el 26/11/2020 09:44:38
Hola

¿Porqué no escribe lo que tienes hecho? :)
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
sin imagen de perfil
Val: 9
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Problema para limitar caracteres.

Publicado por Aaron (3 intervenciones) el 26/11/2020 19:29:53
1
2
3
def es_correo_valido(correo):
    expresion_regular = r"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])"
    return re.match(expresion_regular, correo) is not None
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
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema para limitar caracteres.

Publicado por algoritmo (245 intervenciones) el 26/11/2020 20:38:36
Hola

Yo no uso expresiones regulares. Utilizo una función que me lo valida.

En cualquier caso, puedes incorporar diversos condicionantes que te confirmen las exigencias:
Te doy algunas pistas. Espero que te sirva:

'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if correo.count('@')  != 1:
   print “Correo email mal ingresado, ....
else:
   dominio = correo.split('@')[1]
   partes = dominio.split('.')
   nombre = partes[0]
   sufijo = partes[1]
   if len(nombre) < 3 or len(nombre > 20:
      print 'Error'
   else:
      if len(sufijo) < 2 or len(sufijo) > 3:
         print 'error'
      else:
        print 'válido'
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
sin imagen de perfil
Val: 9
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Problema para limitar caracteres.

Publicado por Aaron (3 intervenciones) el 26/11/2020 22:11:46
Creo que ya me enrede
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if correo.count('@')  != 1:
    domini = correo.split('@')[1]
    partes = dominio.split('.')[1]
    usuario = input("Introduce el nombre de usuario del correo")
    dominio = input("Introduce el nombre de dominio del correo")
    final = input("Introduce el final del dominio del correo")
else:
   dominio = correo.split('@')[1]
   partes = dominio.split('.')[1]
   nombre = partes[0]
   sufijo = partes[1]
   if len(nombre) < 3 or len(nombre > 20):
      print ("Correo email mal ingresado, intente nuevamente")
   else:
      if len(final) < 2 or len(final) > 3:
         print ("Correo email mal ingresado, intente nuevamente")
      else:
        if len(dominio) < 3 or len(nombre > 20):
          print ("Correo email mal ingresado, intente nuevamente")
        else:
           print(usuario+domini+dominio+domini+final)
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

Problema para limitar caracteres.

Publicado por Juan (1 intervención) el 30/11/2020 17:18:31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
while True:
    correo = input("Ingresa correo: ");
    if not correo.count("@") or not correo.count('.'):
        print ("Correo email mal ingresado, intente nuevamente");
        continue;
    user = correo.split("@")[0];
    domain = correo.split("@")[1].split(".")[0];
    if not correo.count('@') <= 1 or not correo.split('@')[1].count('.') <= 1:
        print ('Correo email mal ingresado, intente nuevamente');
        continue;
    else:
        if len(user) <= 2 or len(user) >= 21:
            print('Correo email mal ingresado, intente nuevamente');
            continue
        else:
            break;
print(correo,'es Correcto');
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