Leia também:
- Certificado do Curso de Python (para quem deseja trabalhar como programador)
- Conteúdo do Python Progressivo em PDF
Jogando os Dados com o Python
Para gerar nossos números aleatórios de 1 até 6, vamos definir a função gera() que não tem nenhum parâmetro e vai, obviamente, retornar número inteiro de 1 até 6.
Para isso, vamos usar a função randint da biblioteca random.
Se não leu nosso tutorial, veja: Como gerar números aleatórios em Python
Essa função recebe os argumentos 1 e 6, parar gerar inteiros de 1 até 6. E para usar ela, temos que importar o módulo random.
Ela fica:
import random def gera(): return random.randint(1,6)
Agora, vamos criar a função repete(n), que vai repetir n lançamentos de dados, onde n o usuário vai escolher quantas vezes vai jogar os dados.
Vamos armazenar os resultados 1, na variável test1.
Vamos armazenar os resultados 2, na variável test2.
...
Vamos armazenar os resultados 6, na variável test6.
Então inicializamos essa variável com todas elas igual a 0.
Agora vamos fazer um laço for pra rodar n vezes o lançamento de dados.
Cada vez que lança o dado (simplesmente chamando a função gera() - uma maravilha função né?), armazenamos na variável test.
Em seguida, vamos fazer várias comparações com IF, ELIF e ELSE, para saber se o valor do dado é 1, 2, 3, 4, 5 ou 6. E quando achar o valor certo, incrementar em 1 o valor da variável test1, ou test2 ou ... test6.
Ou seja, ao final do laço for, as variáveis test1, test2, ..., test6 terão quando vezes foi sorteado o número 1, 2, 3, 4, 5 e 6 respectivamente.
Então simplesmente damos seis prints, para exibir quantas vezes cada número saiu, bem como mostramos a porcentagem de frequência de cada valor,
Veja o código:
import random def gera(): return random.randint(1,6) def repete(n): test1=test2=test3= \ test4=test5=test6 = 0 for val in range(n): test = gera() if(test==1): test1 += 1 elif(test==2): test2 += 1 elif(test==3): test3 += 1 elif(test==4): test4 += 1 elif(test==5): test5 += 1 else: test6 += 1 print("Numero 1 saiu ", test1," vezes = ",(test1/n)*100, " %") print("Numero 2 saiu ", test2," vezes = ",(test2/n)*100, " %") print("Numero 3 saiu ", test3," vezes = ",(test3/n)*100, " %") print("Numero 4 saiu ", test4," vezes = ",(test4/n)*100, " %") print("Numero 5 saiu ", test5," vezes = ",(test5/n)*100, " %") print("Numero 6 saiu ", test6," vezes = ",(test6/n)*100, " %") def menu(): n = int(input('Quantos lançamentos de dado? ')) repete(n) while True: menu()
PS 1: Quanto maior for o n, mais a porcentagem se aproxima de 16,67% pois vai tendendo à probabilidade, que é de 1/6 .
PS 2: Mais na frente, quantos estudarmos sequências, você aprenderá maneiras mais simples de se trabalhar com várias variáveis de uma vez só.
sei que o intuito é fazer com funções mas....
ResponderExcluirimport numpy as np
import pandas as pd
import random
dado = np.random.randint(1,7,1000000)
pd.value_counts(dado)