Boa noite,
Sou iniciante e autodidata em python, sou formado em Adm. e especializado em finanças, e já não sou tão jovem quantos muitos do grupo kkkk, sempre gostei de programação e desde novo me atrevo nesta área, iniciei em clipper, onde fiz alguns sistemas pequenos, mas depois foquei na minha formação de deixei de programar e passou a ser mais por hobby, depois do clipper fui para o visual basic, e depois fique muito tempo sem programar e por uma necessidade na empresa busquei o python para solucionar o problema.
Hoje como acho a programação um excelente exercício para o raciocínio contínuo, tenho sobrinhos que adoram bingo e resolvi fazer um sisteminha para o sorteio (segue abaixo), ele está funcionando, mas gostaria da opnião dos caro colegas se como escrevi meu código está a contento ou devo melhorar em algum aspecto da escrita do código ou da lógica.
Agradeço desde já a atenção daqueles que quiserem opinar, um abraço a todos e um 2021 de muita prosperidade.
PS: mandei o código na mensagem, pois não sei como utilizar o "Github" para enviar.
############################################
# Sistema de sorteio de números para Bingo #
# Criado por: Miguel Guarnieri Júnior #
# Versão 1.0 - 26/12/2020 #
############################################
# Importando Bibliotecas
import random
from tkinter import *
#Variaveis
i=0
anterior="#-##"
def sortear():
global i
global anterior
global numeros
global sorteado
global B
global I
global N
global G
global O
B_Reiniciar.config(state="normal")
#Criando Lista de Números
if i==0:
numeros = list(range(1,76))
B = list()
I = list()
N = list()
G = list()
O = list()
#Mistura os números
random.shuffle(numeros)
#Sorteio dos números
if i <= 74: #74
sorteado = numeros[i]
if sorteado >= 1 and sorteado <= 15:
letra = "B"
B.append(sorteado)
B.sort()
LabelB.config(text="B -> "+str(B))
elif sorteado >=16 and sorteado <=30:
letra = "I"
I.append(sorteado)
I.sort()
LabelI.config(text="I -> "+str(I))
elif sorteado >=31 and sorteado <=45:
letra = "N"
N.append(sorteado)
N.sort()
LabelN.config(text="N -> "+str(N))
elif sorteado >=46 and sorteado <=60:
letra = "G"
G.append(sorteado)
G.sort()
LabelG.config(text="G -> "+str(G))
elif sorteado >=61 and sorteado <=75:
letra = "O"
O.append(sorteado)
O.sort()
LabelO.config(text="O -> "+str(O))
Label2.config(text=letra+"-"+str(sorteado))
Label4.config(text=str(i+1)+"/75")
Label6.config(text=anterior)
anterior=letra+"-"+str(sorteado)
i+=1
else:
Label2.config(text="FIM")
B_ProxN.config(state="disabled")
#B_Iniciar.config(state="normal")
i=0
def iniciar():
global Label2
global Label4
global Label6
global LabelB
global LabelI
global LabelN
global LabelG
global LabelO
global B_ProxN
global B_Reiniciar
B_Iniciar.config(state="disabled")
Img_Bingo.destroy()
Label1 = Label(Win1, text="Numero Sorteado:",
font=("Arial","20","bold"),
fg="red")
Label2 = Label(Win1, text="#-##",
font=("Arial","100","bold"),
fg="red")
B_ProxN = Button(Win1,text=" Sortear !!! ",
font=("Arial","20","bold"),
fg="black",
bg="light gray",
width=10,
height=2,
command=sortear)
B_Reiniciar = Button(Win1,text=" Reiniciar ",
font=("Arial","20","bold"),
fg="black",
bg="light gray",
width=10,
height=2,
state="disabled",
command=reiniciar)
LabelB = Label(Win1, text="B ->",
font=("Arial","25","bold"))
LabelI = Label(Win1, text="I ->",
font=("Arial","25","bold"))
LabelN = Label(Win1, text="N ->",
font=("Arial","25","bold"))
LabelG = Label(Win1, text="G ->",
font=("Arial","25","bold"))
LabelO = Label(Win1, text="O ->",
font=("Arial","25","bold"))
Label3 = Label(Win1, text="Quantidade de Bolas Sorteadas:",
font=("Arial","20","bold"))
Label4 = Label(Win1, text="0",
font=("Arial","20","bold"))
Label5 = Label(Win1, text="Número anterior:",
font=("Arial","20","bold"))
Label6 = Label(Win1, text="",
font=("Arial","20","bold"))
Label1.place(x=50, y=50)
Label2.place(x=50, y=100)
B_ProxN.place(x=50, y=400)
B_Reiniciar.place(x=50, y=500)
LabelB.place(x=400, y=50)
LabelI.place(x=400, y=150)
LabelN.place(x=400, y=250)
LabelG.place(x=400, y=350)
LabelO.place(x=400, y=450)
Label3.place(x=400, y=550)
Label4.place(x=850, y=550)
Label5.place(x=50, y=300)
Label6.place(x=50, y=340)
def reiniciar():
global i
global anterior
i=0
anterior="#-##"
LabelB.config(text="B ->")
LabelI.config(text="I ->")
LabelN.config(text="N ->")
LabelG.config(text="G ->")
LabelO.config(text="O ->")
Label2.config(text="#-##")
Label4.config(text="0/75")
Label6.config(text="")
B_ProxN.config(state="normal")
def sair():
Win1.destroy()
#Parte Gráfica das Telas
#Criando as Janelas
Win1 = Tk()
Win1.title("Sorteio Bringo - Versão 1.0 - 12/2020")
Win1.geometry("1300x690+30+5") #Largura x Altura + posicaoX + posiçãoY
#Win1.iconbitmap("c:/xxx/icon.ico") --> icone da janela
imagem = PhotoImage(file="Sorteio_Bingo_Img1.png")
Img_Bingo = Label(Win1, image=imagem)
Img_Bingo.place(x=150, y=20)
#Botões
B_Iniciar = Button(Win1,text=" Iniciar ",
font=("Arial","20","bold"),
fg="black",
bg="light gray",
width=10,
height=1,
command=iniciar)
B_Sair = Button(Win1,text=" Sair ",
font=("Arial","20","bold"),
fg="black",
bg="light gray",
width=10, #lagura
height=1, #Altura
command=sair)
B_Iniciar.place(x=400, y=610)
B_Sair.place(x=710, y=610)
#Executar a Janela
Win1.mainloop()