私はパスワードの強さを判断するプログラムを作成しています。コードの一部は、パスワードに数字があるかどうかを確認するためのものです。しかし、パスワードを入力すると、数字がない場合、出力として何を印刷するかを詳しく記述していないコードが完全に無視され、「これは短すぎます。Tkinterは入力に対する反応を詳述するコードの一部をスキップします - 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()
私は9を超える文字を入力することで、自身でコードをテストしようとすると、それが次のエラーでコードを拒否:
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
は、どのように私はプログラムが側面をスキップない作ることができ、私がプログラムした代替出力を使用しますか? 数字を組み込むことが唯一の問題だった場合は、どのようにエラーを修正できますか?
def value():
value
をエラーメッセージが、それはあなたがあなたの条件(複数可)からそれらを渡すことにもかかわらず、何の位置引数を取りません言うように:あなたが定義した関数で
このELIF値(entered_text):elifのステートメントは、何かをしようとしているようには見えません。また、value()がPythonに組み込まれているので、組み込み関数を使わないでください。 –
私は自分の答えを更新しました。私はあなたのコードを少し修正しました。何か不必要なものがあったからです。それが役に立ったら教えてください。 –