7
7
8
8
# Funcion que comprueba errores
9
9
10
- def errores ( psw_in ):
10
+ def validar_cadena ( cadena ):
11
11
12
+ if len (cadena ) != 4 :
13
+ return "Error: La cadena debe tener exactamente 4 caracteres."
12
14
15
+ errores = []
16
+
17
+ for char in cadena :
18
+ if char not in "ABC123" :
19
+ errores .append (f"'{ char } '" )
20
+
21
+ if len (set (cadena )) != len (cadena ):
22
+ errores .append ("Los caracteres no deben repetirse" )
23
+
24
+ if errores :
25
+ return f"Error: { ', ' .join (errores )} . Solo se permiten A, B, C, 1, 2, y 3, y sin repeticiones."
26
+
27
+ return "La cadena es válida."
13
28
14
29
# Funcion que comprueba la contraseña ingresada
15
30
@@ -18,15 +33,10 @@ def comprobar_psw(psw_in, psw):
18
33
for x , y in zip (psw_in , psw ):
19
34
20
35
if x == y :
21
-
22
36
print (f'\n { x } : Correcto' )
23
-
24
37
elif x in psw :
25
-
26
38
print (f'\n { x } : Presente' )
27
-
28
39
else :
29
-
30
40
print (f'\n { x } : Incorrecto' )
31
41
32
42
# Generar una cadena aleatoria de 4 caracteres
@@ -50,35 +60,28 @@ def comprobar_psw(psw_in, psw):
50
60
while intento < 10 :
51
61
52
62
intento += 1
53
-
54
63
print (f'\n Intento n.° { intento } :' )
55
64
56
- while True :
57
-
58
- psw_in = input ('\n Ingresa contraseña: ' )
65
+ psw_in = input ('\n Ingresa contraseña: ' )
66
+ resultado = validar_cadena (psw_in )
59
67
60
- if errores (psw_in ):
61
-
62
- print ('''
63
- \n Los caracteres ingresados no son correctos.
64
- \n Inténtalo de nuevo...
65
- ''' )
68
+ if resultado == "La cadena es válida." :
69
+ pass
70
+ else :
71
+ print (resultado )
72
+ continue
66
73
67
74
if psw_in == psw :
68
-
69
75
print ('''
70
76
\n La contraseña es correcta.
71
77
\n ¡Felicidades, a repartir juguetes!
72
78
''' )
73
-
74
- exit ()
75
-
79
+ sys .exit ()
76
80
else :
77
-
78
81
print (f'''
79
82
\n La contraseña es incorrecta. Pero descuida, te doy unas pistas:
80
- \n { comprobar_psw (psw_in , psw )}
81
83
''' )
84
+ comprobar_psw (psw_in , psw )
82
85
83
86
print ('''
84
87
\n ¡Oh, no. Papá Noel has olvidado la contraseña!
0 commit comments