Ich erstelle ein Programm, das die Stärke von Passwörtern beurteilt. Ein Teil des Codes soll prüfen, ob ein Passwort irgendwelche Nummern hat. Wenn ich jedoch ein Passwort eintrage, wird der Code ignoriert, der angibt, was als Ausgabe ausgegeben werden soll, wenn keine Zahlen vorhanden sind, und stattdessen mit: 'das ist zu kurz' zurückgegeben.Tkinter überspringt einen Teil des Codes, der die Reaktion auf einen Eingang beschreibt - Python
from tkinter import *
import re
def pass_Type():
strength = pass_Type #Applies pass_Type to the entire program
def value():
value
def click():
entered_text = entry.get()
if entered_text in pass_Type:
strength = pass_Type[entered_text]
output.delete(0.0, END)
output.insert(END, strength)
#Click function
elif len(entered_text) < 9:
output.delete(0.0, END)
output.insert(END, 'This is too short')
elif pass_Type and len(entered_text) < 9:
output.delete(0.0, END)
output.insert(END, strength)
elif value(entered_text): }
if not any(c.isdigit() for c in value): }
output.delete(0.0, END) }
output.insert(END, 'Incorporate some numbers') } #The problematic area
elif value(entered_text) and len(entered_text) < 9: }
if not any(c.isdigit() for c in value): }
output.delete(0.0, END)
output.insert(END, 'Try to incorporate some numbers and increase the length of your password')
else:
output.delete(0.0, END)
output.insert(END, "This password is acceptable!") #When the password is ok
Password = Tk()
Password.title('Password tester')
label = Label(Password, text="Password:")
label.grid(row=0, column=0, sticky=W) #Entry label
entry = Entry(width=20, bg='light blue')
entry.grid(row=1, column=0, sticky=W) #Entry box
Button(Password, text='SUBMIT',width=5, command=click).grid(row=2,column=0, sticky=W) #Button
label = Label(Password, text='Strength:')
label.grid(row=4, column=0, sticky=W) #Output label
output = Text(Password, width=75, height=6, wrap=WORD, background='light blue')
output.grid(row=5, column=0, columnspan=2, sticky=W) #Output box
pass_Type = {
'Password': 'This is a very predicatable password. You should incorporate numbers',
'password': 'This is a very predicatable password. You should incorporate numbers and capital letters', #Common password glossary
'12345': 'Try and incorporate some letters',
'qwerty': 'Try to jumble up your letters so the password is not so predictable.'
}
Password.mainloop()
Wenn ich selbst den Code zu testen versuchen, um mehr als 9 Zeichen eingegeben hat, lehnt sie den Code mit dem folgenden Fehler:
Exception in Tkinter callback
Traceback (most recent call last):
File "", line 1549, in __call__
return self.func(*args)
File "", line 25, in click
elif value(entered_text):
TypeError: value() takes 0 positional arguments but 1 was given
Wie kann ich überspringt das Programm nicht über den Aspekt, und verwende den von mir programmierten alternativen Ausgang? Und wenn das Einbauen von Zahlen das einzige Problem war, wie kann ich den Fehler beheben?
Dieser elif-Wert (eingegebener Text): elif-Anweisung sieht nicht so aus, als würde irgendetwas tun. Auch sollten Sie vermeiden, eingebaute Funktionen zu verwenden, da value() in Python eingebaut ist. –
Ich habe meine Antwort aktualisiert. Ich habe deinen Code ein wenig überarbeitet, weil darin unnötige Dinge drin waren. Lass es mich wissen, wenn es hilft. –