Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Criação de código de aluno.

Durante o exercício, foram criadas tuplas dentro de uma lista com o nome do aluno e um código. A pergunta é se o randint é capaz de gerar numeros aleatórios, mas não repetitivos? pois no exercício é possivel que tenhamos códigos iguais para alunos diferentes.

1 resposta
solução!

Olá Pedro, beleza? Espero que sim!

A randint é capaz de gerar números inteiros aleatórios (na verdade, pseudoaleatórios) em um intervalo pré-definido com início e fim, então pode acontecer sim das notas serem repetidas entre alguns alunos, mas não em sua totalidade.

E em um sistema real de avaliação, isso não seria um problema, porque dependendo do sistema de avaliação, é comum vários alunos compartilharem notas iguais.

Do ponto de vista matemático, caso as notas sejam somente números inteiros (0, ..., 10), que é o espaço que a randint trabalha, e nós tenhamos que avaliar uma turma com mais de 10 alunos, vai acontecer pelo menos um caso de repetição de nota, devido ao Princípio das Gavetas de Dirichlet.

Então uma maneira possível de contornar essa questão é tentar avaliar notas com casas decimais (ex: 9.6, 8.56, ...), porque o nosso intervalo de notas diferentes aumenta.

Como a randint só gera inteiros, temos que utilizar uma abordagem que trabalhe com números decimais em um intervalo também especificado. Uma função possível para isso é a random.uniform(inicio, fim). Que vai utilizar uma função estatística de distribuição para gerar números entre um intervalo específicado. Um exemplo de código que cria uma função usando ela para gerar notas é mostrado abaixo:

import random

def gerar_nota():
    
    nota = random.uniform(0, 10)
    return round(nota, 2)

print("Notas geradas:")
for i in range(10):
    print(gerar_nota())

Com uma saída no seguinte formato:

Notas geradas:
5.37
2.1
2.41
4.22
0.14
6.21
0.58
1.54
8.22
6.15

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!