Python - Crear un programa que genere PINS aleatorios de 4 caracteres

 
Vista:

Crear un programa que genere PINS aleatorios de 4 caracteres

Publicado por Ada (1 intervención) el 11/03/2023 02:37:59
Buenas a todos. Mi profesor ha dejado de tarea un ejercicio distinto para cada alumno. En este caso el mío es el siguiente:

En Python debe crear dos programas que se encarguen de generar códigos PIN aleatorios de 4 caracteres, el cual solo contendrá 1 letra (Se permite usar mayúsculas y minúsculas) y tres números generados al azar (Del 0 al 9).

- El primer programa solo permitirá que la letra este al principio o al final del código.

- El segundo programa permite que la letra esté en cualquier orden del código.

Cabe señalar que en ambos programas se debe mostrar una lista de todos los códigos generados.



1
2
3
4
5
6
7
8
9
10
import random
letras = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
numeros = "0123456789"
 
unir = f"{letras}{numeros}"
longitud = 4
extension = random.sample(unir, longitud)
pin = "".join(extension)
 
print(pin)

Hasta el momento esto es lo que llevo de código, pero no tengo idea de como dejarle en claro que solo quiero una única letra al principo, final o al azar y que me muestre una lista.
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

Crear un programa que genere PINS aleatorios de 4 caracteres

Publicado por Costero (92 intervenciones) el 11/03/2023 17:10:30
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
import random
 
letras = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
numeros = "0123456789"
 
codigos = []
 
for i in range(10):
    nums = "".join(random.sample(numeros, 3))
    words = "".join(random.sample(letras, 1))
 
    value = "".join(random.sample("10", 1))
    if "0" in value:
        codigos.append(f"{words}{nums}")
    else:
        codigos.append(f"{nums}{words}")
 
print(str(codigos))
 
codigos2 = []
for i in range(10):
    index = "".join(random.sample("0123", 1))
    nums_list = random.sample(numeros, 3)
    word = "".join(random.sample(letras, 1))
    nums_list.insert(int(index), word)
    nums_word = "".join(nums_list)
    codigos2.append(nums_word)
 
print(str(codigos2))
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

Crear un programa que genere PINS aleatorios de 4 caracteres

Publicado por Costero (92 intervenciones) el 11/03/2023 18:31:32
Mejor:

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
import random
 
def get_codigos(
        position="random",
        letras="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
                   numeros="0123456789",
                   num_sample_size=5,
                   word_sample_size=2,
                   range_size=10) -> list:
    codigos = []
    for i in range(range_size):
        nums = random.sample(numeros, num_sample_size)
        words = "".join(random.sample(letras, word_sample_size))
 
        if position in "first":
            nums.insert(0, words)
        elif position in "last":
            nums.insert(num_sample_size + word_sample_size - 1, words)
        else:
            nums.insert(0, words)
            random.shuffle(nums)
        codigos.append("".join(nums))
 
    return codigos
 
if __name__ == "__main__":
    print("Codigos last: " + str(get_codigos("last", num_sample_size=3, word_sample_size=1)))
    print("Codigos first: " + str(get_codigos("first", num_sample_size=3, word_sample_size=1)))
    print("Codigos random: " + str(get_codigos(num_sample_size=3, word_sample_size=1)))
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