Python - ayuda para validar un input

 
Vista:

ayuda para validar un input

Publicado por joaquin (4 intervenciones) el 02/06/2019 04:04:35
Hola necesito ayuda para validar un input que se ingrese una patente de esta manera: LLLNNN o LLNNNLL (siendo L una letra y N un número).
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

ayuda para validar un input

Publicado por joel (901 intervenciones) el 02/06/2019 09:04:03
Hola Joaquin, para ello, puedes utilizar una expresión regular... algo así:
1
2
import re
re.findall('^[A-Z]{3}[0-9]{3}$', 'ASS323')

Te sirve?
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

ayuda para validar un input

Publicado por Joaquin (4 intervenciones) el 02/06/2019 14:57:42
Hola, no necesito hacerlo con for ,condiciones y while
Pero igual gracias..
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

ayuda para validar un input

Publicado por Joaquin (4 intervenciones) el 02/06/2019 19:06:26
1
2
3
4
5
6
7
8
9
10
11
12
13
letras=("Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Ñ","Z","X","C","V","B","N","M")
num=('0123456789')
cont=0
patente=input("Ingrese la patente(orden LLLNNN/LLNNNLL: ")
ppat=True
for car in patente:
    if car[0] == letras and car[1] == letras and car[2]== letras and car[3]==num and car[4]==num and car[5]==num:
      car +=1
 
if ppat:
    print('Ingreso Correctamente...')
elif ppat == False :
    print('Error.. ')
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 Jaime
Val: 526
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

ayuda para validar un input

Publicado por Jaime (136 intervenciones) el 03/06/2019 09:00:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def patent(cadena):
    c=0
    if(len(cadena)==6):
        while(c<3):
            if(not cadena[c].isalpha()):
                return False
                break
            c+=1
        while(c<6):
            if(not cadena[c].isdigit()):
                return False
                break
            c+=1
        return True
    elif (len(cadena)==7):
        c=0
        while(c<len(cadena)):
            if(c==0 or c==1 or c==5 or c==6):
                if(not cadena[c].isalpha()):
                    return False
                    break
            elif(not cadena[c].isdigit()):
                return False
                break
            c+=1
        return True
patente=''
while(patente != 'EXIT'):
   patente=input("Ingrese la patente(orden LLLNNN/LLNNNLL: o EXIT para salir\n")
   if (patent(patente)):
       print(f'{patente} cumple las condiciones')
   elif(patente=='EXIT'):
       print('')
   else:
       print(f'{patente} NO cumple las condiciones')

COMPAÑERO, como consejo, ya existen muchas funciones hechas que te pueden ayudar a agilizar trabajo, como en el ejemplo del compañero joel (a excepcion de que en este caso especifico necesitabas bucles) puedes investigar otras funciones como en el ejemplo mio las funciones isdigit() e isalpha().
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

ayuda para validar un input

Publicado por Joaquin (4 intervenciones) el 03/06/2019 16:22:57
Dale ,muchas gracias amigo. Si la verdad me falta bastante de aprender el tema funciones .
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: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

ayuda para validar un input

Publicado por tincopasan (1082 intervenciones) el 03/06/2019 19:49:49
hay muchas formas de hacer esto, en este caso usaré un poco de tu lógica:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#-*- coding: utf -8 -*-
from string import ascii_letters
letras=ascii_letters + "Ñ" + "ñ"             #creo el abecedario, solo que hay que agregar las Ñ ñ
num="".join(str(list(range(10))))          #creo la cadena de números del 0 al 9  
 
def validar(patente):                              #por si hay que usar una función propia     
    if len(patente) == 6:                           #de acuerdo al largo de la patente 
        cad1=patente[:3]                           #primeros 3 caracteres 
        cad2=patente[3:]                           #últimos 3 caracteres
        for x in cad1:
            if x not in letras:
                print("Patente no válida")
                return
        for y in cad2:
            if y not in num:
                print("Patente no válida")
                return
 
    if len(patente) == 7:               # lo mismo que antes salvo que ahora los caracteres no son todos consecutivos
        cad3=patente[:2] + patente[5:]
        cad4=patente[2:5]
        for x in cad3:
            if x not in letras:
                print("Patente no válida")
                return
        for y in cad4:
            if y not in num:
                print("Patente no válida")
                return
    print("Patente válida")
 
patente=input("Ingrese la patente(orden LLLNNN / LLNNNLL : ")
while len(patente) < 6 or len(patente) > 7:
    patente=input("Ingrese la patente(orden LLLNNN / LLNNNLL : ")
 
validar(patente)
saludos
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