Мне присвоен кусок домашней работы, чтобы добавить графический интерфейс tkinter в обычный код python.
Это мой код:Проблемы с Python tkinter
from tkinter import *
Window = Tk()
PasswordActual = Entry(Window)
Password = str(PasswordActual)
L1 = Label(Window, text = "Enter password:")
L2 = Label(Window)
def Main():
PasswordCheck1 = len(Password)
NumbersList = []
CapsList = []
LowersList = []
def PasswordProcesser(WhatCharacters, CharactersInPassword):
for Characters in WhatCharacters:
if Characters in Password:
PasswordCheck2 = Characters in Password
if CharactersInPassword == "Numbers":
NumbersList.append(PasswordCheck2)
elif CharactersInPassword == "Caps":
CapsList.append(PasswordCheck2)
elif CharactersInPassword == "Lowers":
LowersList.append(PasswordCheck2)
if PasswordCheck1 >= 6 and PasswordCheck1 <= 12:
PasswordProcesser(["1","2","3","4","5","6","7","8","9"], "Numbers")
PasswordProcesser(["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Q","Y","Z"], "Caps")
PasswordProcesser(["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"], "Lowers")
NumbersInPassword = sum(NumbersList)
CapsInPassword = sum(CapsList)
LowersInPassword = sum(LowersList)
if NumbersInPassword == 0 and CapsInPassword == 0 and LowersInPassword > 0 or CapsInPassword == 0 and NumbersInPassword > 0 and LowersInPassword == 0 or LowersInPassword == 0 and CapsInPassword > 0 and NumbersInPassword == 0:
L2.configure(text = "Password is weak")
elif NumbersInPassword == 0 and CapsInPassword > 0 and LowersInPassword > 0 or CapsInPassword == 0 and LowersInPassword > 0 and NumbersInPassword > 0 or LowersInPassword == 0 and NumbersInPassword > 0 and CapsInPassword > 0:
L2.configure(text = "Password is medium")
else:
L2.configure(text = "Password is strong")
else:
L2.configure(text = "Password too long or short")
Checker = Button(Window, text = "Check Password", command = Main)
L1.grid(row = 1, column = 1)
PasswordActual.grid(row = 1, column = 2)
Checker.grid(row = 2, column = 1)
L2.grid(row = 2, column = 2)
Мой желаемый результат сообщает пользователю, что его код является слабой, средней или сильной. Он работает без добавленного материала tkinter, но он неоднократно говорит мне, что мой пароль слабый. Есть ли причина для этого, или я просто глуп? (Я начинаю tkinter) Thx заранее.
Это мой (рабочий) код без GUI:
def Main2():
Password = input("What is your password?: ")
PasswordCheck1 = len(Password)
NumbersList = []
CapsList = []
LowersList = []
def ExitFunc():
Exit = input("Do you want to exit or retry?: ")
if Exit == "exit" or Exit == "Exit":
exit
elif Exit == "retry" or Exit == "Retry":
Main2()
else:
print("Invalid input, enter exit or retry")
ExitFunc()
def PasswordProcesser(WhatCharacters, CharactersInPassword):
for Characters in WhatCharacters:
if Characters in Password:
PasswordCheck2 = Characters in Password
if CharactersInPassword == "Numbers":
NumbersList.append(PasswordCheck2)
elif CharactersInPassword == "Caps":
CapsList.append(PasswordCheck2)
elif CharactersInPassword == "Lowers":
LowersList.append(PasswordCheck2)
if PasswordCheck1 >= 6 and PasswordCheck1 <= 12:
PasswordProcesser(["1","2","3","4","5","6","7","8","9"], "Numbers")
PasswordProcesser(["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Q","Y","Z"], "Caps")
PasswordProcesser(["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"], "Lowers")
NumbersInPassword = sum(NumbersList)
CapsInPassword = sum(CapsList)
LowersInPassword = sum(LowersList)
if NumbersInPassword == 0 and CapsInPassword == 0 and LowersInPassword > 0 or CapsInPassword == 0 and NumbersInPassword > 0 and LowersInPassword == 0 or LowersInPassword == 0 and CapsInPassword > 0 and NumbersInPassword == 0:
print("Password is weak, try and include capital, lowercase and numerical characters")
ExitFunc()
elif NumbersInPassword == 0 and CapsInPassword > 0 and LowersInPassword > 0 or CapsInPassword == 0 and LowersInPassword > 0 and NumbersInPassword > 0 or LowersInPassword == 0 and NumbersInPassword > 0 and CapsInPassword > 0:
print("Password is medium, try and include capital, lowercase and numerical characters")
ExitFunc()
else:
print("Password is strong")
ExitFunc()
else:
print("Password too long or short, it needs to be no shorter than 6 and no longer than 12")
ExitFunc()
Main2()
@Zetys Я уже знаю, как это сделать, что это графический интерфейс пользователя, который сделал проблемы. –
@MasterChief Я все еще пытаюсь решить это, графический интерфейс tkinter кажется прекрасным ... Я обнаружил, что в разделе проверки есть проблемы. –
Попробуйте добавить скобки в свои условия (или еще лучше использовать отдельную функцию для вычисления силы пароля ...) –