Python - subprograma que pide al usuario un DNI hasta que sea un DNI válido

 
Vista:

subprograma que pide al usuario un DNI hasta que sea un DNI válido

Publicado por raquel (1 intervención) el 05/11/2015 13:48:10
ESCRIBIR subprograma que pide al usuario un DNI hasta que sea un DNI válido, una contraseña válida y un Menú de una aplicación de gestión. Los recogeré a la entrada de clase.

DNI: El Documento nacional de identidad (DNI) español está compuesto por un número de, a lo sumo 8 dígitos, y una letra. El Ministerio de Interior explica cómo se calcula la letra del DNI en:

http://www.interior.gob.es/web/servicios-al-ciudadano/dni/calculo-del-digito-de-control-del-nif-nie

Teniendo esto en cuenta, haz un subprograma recibe un DNI y dice si es válido. Contempla y resuelve la situación en que el DNI tenga menos de 8 caracteres.

Haz un subprograma que solicita a un usuario el DNI, hasta que introduzca un DNI válido. Aprovecha el subprograma anterior.

Contraseñas: Microsoft sugiere las propiedades que ha de tener una contraseña segura en:

http://windows.microsoft.com/es-es/windows-vista/tips-for-creating-a-strong-password

Atendamos como mínimo a las que se refieren a número y tipos de caracteres. En una segunda versión, atenderemos el resto de recomendaciones. Documéntate a cerca de cómo debe ser una contraseña y haz un subprograma que responda si una cadena de caracteres dada es contraseña válida. Quizá te convenga apoyarte en la función tipoCaracter que has programado en el ejercicio 5.21 del libro.

Menú:

Haz cuatro subprogramas, uno para alta, baja, modificación, consulta, que de momento solo imprimen "Gestión de ....", Usándo estos subprogramas, construye un programa principal que ofrece un menú al usuario hasta que éste elija la quinta opción "salir". Puede convenirte usar el subprograma "entero pedido" que habéis resuelto en el foro, en el hilo con este nombre
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder

subprograma que pide al usuario un DNI hasta que sea un DNI válido

Publicado por Rosalia (1 intervención) el 06/11/2015 22:29:57
461d4a1a-9528-4d93-90cb-9f4838ef7ec2
Hola Raquel soy tu profesora y te doy las gracias por tu interes en esta asignatura.Esta claro que a partir de ahora tendre que tomar medidas contigo pero aun asi contestare a la pregunta:
1
2
3
4
5
6
7
8
9
10
11
12
def dni():
nif = raw_input("Introduzca el NIF o Dni: \n")
tabla = "TRWAGMYFPDXBNJZSQVHCKE"
numeros = "1234567890"
if len(nif) == 9:
     letra = nif[8].upper()
     dni = nif[:8]
     if ( len(dni) == len( [n for n in dni if n in numeros] ) ):
         if tabla[int(dni)/23] == letra:
             print "El NIF introducido es correcto"
else:
    print"Uno valido porfa"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def contrasenia():
mayuscula=0
minuscula=0
numeros=0
contrasenia =raw_input("Introduce contrasenia:")
longitud=len(contrasenia)
for carac in contrasenia:
        if (longitud <8):
                print "Minimo 8 caracteres"
                print "no puede tener espacios"
        if (longitud >8):
                for carac in contrasenia :
                        if carac.isspace()==True:
                                print "no puede tener espacios"
                        if carac.isupper()==True:
                                mayuscula=mayuscula+1
                        if carac.islower()==True:
                                minuscula=minuscula+1
                        if carac.isdigit()==True:
                                numeros=numeros+1
if mayuscula==0 or minuscula==0 or numeros==0:
        print"Contrasenia no segura,prueba Mayus+minus+num"
else:
        print"Contrasenia correcta"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def menu():
    op=5
    while (op!=0):
        print'1) Dar de ALTA'
        print'2) Dar de BAJA'
        print'3) Modificacion'
        print'4) Consulta'
        print'0) SALIR'
        op=int(input('Elige un numero\n'))
        if(op==1):
            alta()
        if(op==2):
            baja()
        if(op==3):
            modificaion()
        if(op==4):
             consulta()
menu()
print'   ADIOS,ESTAS SUSPENSA!!'
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

subprograma que pide al usuario un DNI hasta que sea un DNI válido

Publicado por silaprofetetrollea (1 intervención) el 27/04/2017 15:20:20
Si la profe te vasilah tú te callah y lo asimilah

Es molón lo de la UAH, no solo no te enseñan ellos, si no que ya ni puedes buscar en internet que alguien te guíe.
Que si, poner el enunciado literal ha sido un canteo, pero creo que más tonta es la reacción.

Consejo: la próxima vez intenta buscar en sitios menos habituales para profesores, como algún subreddit de programación o stackoverflow (por lo de estar en inglés), y no hagas un copy/paste de un enunciado, que así casi nadie te va a hacer caso a menos que pagues por la práctica resuelta.
Haz preguntas más concretas, en plan "¿Cómo leo una cadena por teclado?" o "¿Cómo se hace para detectar espacios en una cadena?", etc., hay mil formas. De hecho, esas preguntas si las haces directamente en el buscador de google, suelen estar respondidas en los sitios que te he dicho (mayormente en inglés) y muchos otros.

Eso es lo que tendría que haberte explicado tu profesora, y no intentar vacilar, pero, por lastima, en la UAH te dicen que te busques la vida pero no cómo hacerlo correctamente.

Más suerte la próxima vez
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

subprograma que pide al usuario un DNI hasta que sea un DNI válido

Publicado por ex-uah-member (1 intervención) el 12/07/2017 13:00:27
Lamentable la respuesta que das, se nota que eres el tipo de alumno que justifica sus fracasos con la excusa de la "mala" enseñanza de los profesores.

Menos llorar y mas estudiar!
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