import random
import string
from tkinter import *
window = Tk()
window.geometry("800x600")
def generate():
if not cnt_ent.get().isdigit():
pas_ent.delete(0, END)
pas_ent.insert(0, "Ошибка!")
return
alphabet = ""
if bl.get():
alphabet = alphabet + string.ascii_uppercase
if sl.get():
alphabet = alphabet + string.ascii_lowercase
if d.get():
alphabet = alphabet + string.digits
if s.get():
alphabet = alphabet + string.punctuation
if len(alphabet) == 0:
pas_ent.delete(0, END)
pas_ent.insert(0, "Выберите что-то!")
return
pas_len = int(cnt_ent.get())
password = ""
for i in range(pas_len):
password = password + random.choice(alphabet)
pas_ent.delete(0, END)
pas_ent.insert(0, password)
app_font = "Verdana 12 bold"
btn = Button(
window, text="Гененрировать", command=generate,
bg="red", fg="green",
activebackground="blue", activeforeground="yellow",
relief=FLAT,
font=app_font,
)
btn.grid(row=5, column=0, padx=10, pady=10)
pas_ent = Entry(window)
pas_ent.grid(row=5, column=1, padx=10, pady=10)
cnt_label = Label(window, text="Количество символов")
cnt_label.grid(row=0, column=0, padx=10, pady=10)
cnt_ent = Entry(window)
cnt_ent.grid(row=0, column=1, padx=10, pady=10)
bl = BooleanVar()
bl_cbtn = Checkbutton(window, text="Большие буквы", variable=bl)
bl_cbtn.grid(row=1, column=0, sticky=W, padx=10)
sl = BooleanVar()
sl_cbtn = Checkbutton(window, text="Маленькие буквы", variable=sl)
sl_cbtn.grid(row=2, column=0, sticky=W, padx=10)
d = BooleanVar()
d_cbtn = Checkbutton(window, text="Цифры", variable=d)
d_cbtn.grid(row=3, column=0, sticky=W, padx=10)
s = BooleanVar()
s_cbtn = Checkbutton(window, text="Символы", variable=s)
s_cbtn.grid(row=4, column=0, sticky=W, padx=10)
window.mainloop()