Este artigo foi publicado como parte do Data Science Blogathon.
Introdução
Visão geral do Tkinter
Python fornece uma biblioteca padrão de GUI chamada Tkinter. O módulo Tkinter ajuda a criar aplicações GUI de uma forma rápida e fácil. Tkinter fornece 15 tipos de widgets. Alguns dos mais comuns são botão, Rótulo, Marco, Cardápio. A mensagem, botao de radio, o texto, a barra de rolagem, etc. Você pode ler mais sobre isso aqui e aqui.
Neste artigo. vamos criar um jogo de pequenos números. O usuário continuará a receber perguntas numéricas. Eles responderão e clicarão em Enter para ir para a próxima pergunta até decidirem sair e processar o resultado.. Respostas corretas e incorretas serão capturadas para mostrar o resultado no final. Usaremos widgets como Etiqueta, Fim, Entrada, Texto, Botão. Vamos começar com a implantação sem mais delongas.
Implementação
1. Pacotes de importação
Em geral, é uma boa ideia manter todas as importações separadas. Ao menos, eu gosto assim!
importar tkinter importar aleatório de importação aleatória randint do botão de importação do tkinter import matplotlib.pyplot as plt importar numpy como np
2. Criação de uma janela GUI e declaração de variáveis globais
Vamos criar o design da interface. Decida o tamanho do layout e um título atraente
root = tkinter.Tk()
root.title("Você é esperto!!")
root.geometry("400x200")
correct_result = 0
correct_answers = 0
total_questions = 0
incorrect_answer = 0
3. Função para avaliar o resultado
Vamos criar pequenas definições para realizar tarefas que tornam o código fácil de manter e limpo para ler.
def avaliar(evento):
correct_result global
user_input global
user_input_given = user_input.get()
se str(user_input_given) == str(correct_result):
correct_answers globais
correct_answers + = 1
próxima questão()
outro:
resposta incorreta global
incorrect_answer + = 1
resultado = tkinter.Label(raiz, text ="Má sorte!!nA resposta correta é : "+str(correct_result), font =('Helvetica', 10))
result.pack()
próxima questão()
root.after(1500, result.destroy)
4. Função para criar uma pergunta
Usaremos aleatório para criar um inteiro aleatório e uma escolha aleatória para o operador '+', ‘-‘ e '*’ para que os usuários possam obter conjuntos aleatórios de perguntas numéricas para responder
def nextQuestion():
user_input.focus_set()
user_input.delete(0, tkinter.END)
first_num global
first_num = randint(1,15)
segundo_num global
second_num = randint(1,15)
caráter global
character = random.choice("+-*")
global correct_result
if character == '*':
correct_result = first_num*second_num
if character == '+':
correct_result = first_num+second_num
if character == '-':
correct_result = first_num-second_num
text ="Insira o valor de "+str(first_num)+" "+personagem +" "+str(segundo_num)
total_questions global
total_questions + = 1
user_question.config(texto = texto)
user_question.pack()
5. Função de saída
Vamos criar uma pequena função para sair, interagir e registrar os resultados.
def exitThis():
imprimir("Total de perguntas atendidas : "+str(Total de perguntas))
imprimir("Respostas corretas totais : "+str(respostas corretas))
imprimir("Total de respostas incorretas : "+str(resposta incorreta))
root.destroy()
6. Questão inicial
Vamos criar um conjunto inicial de perguntas com base em um número inteiro aleatório e um conjunto aleatório de operadores numéricos
first_num = randint(1,15)
second_num = randint(1,15)
character = random.choice("+-*")
se carácter == '*':
correct_result = first_num*second_num
if character == '+':
correct_result = first_num+second_num
if character == '-':
correct_result = first_num-second_num
7. Criação de etiqueta
Vamos criar o texto e o design da interface.
user_question = tkinter.Label(raiz, text ="Insira o valor de "+str(first_num)+" "+personagem +" "+str(segundo_num), font =('Helvetica', 10))
user_question.pack()
user_input = tkinter.Entry(raiz)
root.bind('<Retornar>',Avalie)
user_input.pack()
user_input.focus_set()
exitButton = Botão(raiz, text ="SAIR e verificar o resultado", comando = exitThis)
exitButton.pack(lado ="principal", expand = True, padx = 4, almofadas = 4)
8. Inicie a GUI
root.mainloop()
9. Exibição de resultados
Usaremos una barra y un gráfico de pizzaO gráfico de pizza, Também conhecido como gráfico de pizza, é uma representação visual que mostra a proporção de diferentes partes para um todo. É comumente usado em estatística para ilustrar a distribuição de dados categóricos. Cada seção do gráfico representa uma porcentagem do total, facilitando a comparação entre categorias. Seu design claro e conciso o torna uma ferramenta eficaz para a apresentação de informações quantitativas.... para mostrar el resultado a los usuarios después de que decidan salir del juego.
#Traçando o gráfico de barras
plt.figure(0)
objetos = ('Número Total de Perguntas','Respostas Corretas','Respostas Incorretas')
y_pos = np.arange(len(objetos))
estatísticas = [Total de perguntas,respostas corretas,resposta incorreta]
plt.bar(y_pos, Estatísticas, alinhar='centro', alfa = 0,5)
plt.xticks(y_pos, objetos)
plt.ylabel('Números')
plt.title('O Seu Resultado!')
#Traçando o gráfico de pizza
se str(Total de perguntas) != "0":
plt.figure(1)
rótulos ="Respostas corretas",'Incorrect answers'
sizes = [respostas corretas,resposta incorreta]
cores = ['verde', 'vermelho']
explodir = (0.1, 0) # explodir 1ª fatia
plt.pie(tamanhos, explodir = explodir, rótulos = rótulos, cores = cores,
autopct ="%1.1f %%", shadow = True, startangle = 140)
plt.axis('igual')
#Mostra os dois gráficos
plt.show()
conclusão
Se você veio até aqui, Ele deve ter ficado muito intrigado! Então, é assim que parece finalmente



Compartilhe suas idéias se este artigo foi interessante ou te ajudou de alguma forma. Sempre aberto a melhorias e sugestões. Você pode encontrar o código em Github
A mídia mostrada neste artigo não é propriedade da DataPeaker e é usada a critério do autor.



