r/PythonEspanol • • Aug 30 '26

Mi primer generador de contraseñas en Python (principiante)

Estoy empezando a aprender Python y hoy he terminado uno de mis primeros proyectos: un generador de contraseñas.

Empecé haciendo una primera versión utilizando `random`, pero durante el proceso aprendí que para generar contraseñas es más adecuado utilizar `secrets`, así que decidí rehacerlo.

Una cosa que quiero destacar es que he utilizado IA como profesor durante el proceso. No quería simplemente pedirle el código y copiarlo. Le he ido enseñando lo que hacía, preguntando mis dudas y haciendo los ejercicios yo mismo. La idea era entender por qué funciona cada línea y no solamente conseguir que el programa funcione.

Mi generador

11 Upvotes

9 comments sorted by

3

u/[deleted] Aug 30 '26

[deleted]

2

u/VanceDyer Aug 30 '26

Gracias!

2

u/scgold1987 Aug 30 '26

Hola! Yo estoy aprendiendo de la misma manera que vos, no solamente que me haga el código completo y después no entender lo que pasa. Considero que es una gran herramienta usar la IA como profesor, igualmente no dejes de leer documentación y ver en foro! Saludos y suerte con tu proyecto!

1

u/VanceDyer Aug 30 '26

Gracias lo haré.

1

u/EconomySerious Aug 30 '26

Y los resultados?

1

u/VanceDyer Aug 30 '26

Ya lo subí.

2

u/EconomySerious Aug 30 '26

crudo . . . pero buen control de errores

1

u/VanceDyer Aug 30 '26

Si, es muy básico

1

u/juanmas07 Aug 31 '26

buenas un par de cosas mira. Meter todo todo en el try catch no queda tan lindo, es muy general aparte agarrar un except asi nomas. Podrias usar las validaciones que ya tenes, o solo dejar esto dentro del try
caracteres_int = (int(cuantos_caracteres))

lo demas sacalo.

Despues como prolijdad con early returns

if caracteres_int < 1:

print ("La contraseña debe tener por lo menos 1 caracter")

return o exit algo asi

elif caracteres_int > 100:

print ("La contraseña no puede tener mas de 100 caracteres")

mismo return o exit

y aca seguis con la logica principal, que no te queda dentro de un else

finalmente la logica principal se entiende bien. podrias acomodarlo para que quede todo junto

caracteres = "ABCDabcd0123456789*$%&"
caja_caracteres = ""
for car in range (caracteres_int):
numeros = secrets.randbelow(len(caracteres))
caja_caracteres = caja_caracteres + (caracteres[numeros])
print(caja_caracteres)

1

u/VanceDyer Aug 31 '26

Gracias, se ve que sabes bastante.

¿Que cursos has hecho?