これは私のcoourseの仕事です。強力なパスワードを生成するプログラムを作成することを意味しています。私はもともとtkinterでこれをやっていましたが、問題を見つけましたので、最初にテキストベースにすることを決めました。そして、最後にカップルの馬が残っていたら、それをtkinterに変換します。NameError:name 'userpword'が定義されていません
私はなぜ理解していないが、私はこのエラーを取得:
Traceback (most recent call last):
File "C:/Users/Admin/Desktop/course work.py", line 148, in <module>
menureturn()
File "C:/Users/Admin/Desktop/course work.py", line 65, in menureturn
checktheuserspassword()
File "C:/Users/Admin/Desktop/course work.py", line 26, in checktheuserspassword
if re.search("[0-9]", x):
NameError: name 'x' is not defined
私はもののnuberではなく、私は問題が何であるかを理解しない正直に言うと、それを解決するために期待するものを試してみました。私は助けをオンラインで検索しかし、私は唯一の私の場合は仕事をするからあまりにも切り抜いたawnsersを見つけ
これは私の全体のコードです(私はほとんど2時間になりました。この問題で立ち往生してきた):。
import random
import re
#import tkinter.messagebox as tm
def menureturn():
print("Select one of the following numbers: ")
print("1) Check Password")
print("2) Generate Password")
x=input(print("3) Quit"))
if x=="1":
def checktheuserspassword():
def userpasswordlength():
userpword=input("Please enter a password you wish to be checked: ")
if len(userpword)<=8 :
print ("Your password is too short, please enter a longer one (8-12 characters")
userpasswordlength()
if len(userpword)>=12 :
print ("Your password is too long, please enter a shorter one (8-12 characters")
userpasswordlength()
x=len(userpword)
userpasswordlength()
point=0
contain=1
symbol=set("[QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890!$%^&*()-_=+]")
point+=int(x)
if re.search("[0-9]", userpword):
point += 5
contain+= 1
if re.search("[a-z]", userpword):
point+=5
contain+= 1
if re.search("[A-Z]", userpword):
point+=5
contain+= 1
if any((c in symbol)for c in userpword):
point+=5
contain+= 1
if contain==5:
point+=10
for line in userpword.splitlines():
line=line.strip()
if re.search(r'^[a-z]+$',line):
continue
if re.search(r'^[A-Z]+$',line):
continue
if re.search(r'^[a-zA-Z]+$',line):
point -=5
if userpword.isdigit():
point -= 5
if userpword.islower():
point -= 5
if userpword.isupper():
point -= 5
if re.match("^[!$%^&*()-_=+]*$", userpword):
point -= 5
if (point > 20):
print("Your passwords strength is strong.")
if (point > 10) and point<20:
print("Your passwords strength is decent.")
if (point < 20):
print("Your passwords strength is weak.")
else:
checktheuserspassword()
checktheuserspassword()
#checker for users password
print("--------------------------------------------------------------------------------")
backfromgentomenu=input("Type \"Back\" to go back to the menu \nor \"Quit\" to quit: ").lower()
if backfromgentomenu=="back":
menureturn()
if backfromgentomenu=="quit":
quit
if x=="2":
print("--------------------------------------------------------------------------------")
print("Password Generator")
#passwordstrength=input("Please type the strength you wish your randomly generated password to be (Strong,Medium or Weak)").lower()
def checkthegeneratedpassword():
passwordgenerated1="".join(random.choice("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890!$%^&*()-_=+") for i in range(random.randint(8,12)))
point=0
contain=1
symbol=set("[!$%^&*()-_=+]")
point+=len(passwordgenerated1)
if re.search("[0-9]", passwordgenerated1):
point += 5
contain+= 1
if re.search("[a-z]", passwordgenerated1):
point+=5
contain+= 1
if re.search("[A-Z]", passwordgenerated1):
point+=5
contain+= 1
if any((c in symbol)for c in passwordgenerated1):
point+=5
contain+= 1
if contain==5:
point+=10
for line in passwordgenerated1.splitlines():
line=line.strip()
if re.search(r'^[a-z]+$',line):
continue
if re.search(r'^[A-Z]+$',line):
continue
if re.search(r'^[a-zA-Z]+$',line):
point -=5
if passwordgenerated1.isdigit():
point -= 5
if passwordgenerated1.islower():
point -= 5
if passwordgenerated1.isupper():
point -= 5
if re.match("^[!$%^&*()-_=+]*$", passwordgenerated1):
point -= 5
if (point > 20):
print(passwordgenerated1)
else:
checkthegeneratedpassword()
checkthegeneratedpassword()
#checker for gen
print("--------------------------------------------------------------------------------")
backfromgentomenu=input("Type \"Back\" to go back to the menu \nor \"Quit\" to quit: ").lower()
if backfromgentomenu=="back":
menureturn()
if backfromgentomenu=="quit":
quit
if x=="3":
print("--------------------------------------------------------------------------------")
areyousuresimple=input("Are you sure you wish to quit?").lower()
if areyousuresimple=="yes":
quit
elif areyousuresimple=="no" or areyousuresimple=="back":
print("--------------------------------------------------------------------------------")
menureturn()
menureturn()
ありがとうございます。
(あなたは私も参考になっだろうこれに対する解決策を見つけることができる場所を知っている場合)
ヒント:if条件の中で関数を定義しないでください。 –
'userpword'が定義されています'userpasswordlength()'関数の中で関数にアクセスしようとしています。 – glibdud
^^^^^^私は、あなたが私にそれを打ち負かしました。また、PEPを研究して、あなたのコードフォーマットを改善できるかどうかを見てください。なぜなら、私の、私の、コードの混乱! – AJ123