Eu não entendi qual é a diferença entre "int" e "round" antes de (random.random() * 101). Eles não geram o mesmo resultado??
Eu não entendi qual é a diferença entre "int" e "round" antes de (random.random() * 101). Eles não geram o mesmo resultado??
Uma diferença entre o "int" e o "round" é que o "int" arredonda pra menos e o "round" arredonda pra mais, se após o "." o número for >500000..., ex: 9.51.
Teste esse código:
print(int(98.6)) print(round(98.6))
A saída será:
98 99
Em relação ao número aleatório gerado pelo (random.random() * 101), a saída seguiria a regra que eu expliquei acima, com "int" e "round".
Seria uma das diferenças, mas pode ser que existam mais.
Tenho impressão que não é bem assim. Creio que o mais correto é dizer que o "round" vai arredondar e o "int" vai pegar a parte inteira do número.
Se você tem o número: 99.4
A parte inteira dele é "99", de forma que o "int" vai ignorar qualquer coisa após o ponto (parte fracionária). Então ele não arredonda em si, apenas seleciona uma parte da variável.
Já o "round" é, de fato, o arredondamento propriamente dito. E ele arredonda para cima ou para baixo. Então, round(5.4) = 99 round(5.6) = 6
Curioso quando o número é "x.5". Quando X é par, ele arredonda para baixo e quando X é ímpar, ele arredonda para cima. O motivo? Nem faço ideia.
Quando abri o arquivo sobre "round", você ainda pode por um parâmetro (opicional) para casas decimais. Por exemplo, se quiser duas casas decimais: round(1.777777, 2) Resultado dará 1.78
Se tiver dúvidas, é legal abrir o console do python e testar valores e ver o funcionamento para ficar mais claro.
o round vai arredondar com o número de casas que você passar para ele.