【发布时间】:2020-01-14 18:40:06
【问题描述】:
我正在创建一个包含密码强度测试的登录系统。密码必须包含字母和数字、大小写字母,长度在 6 到 12 个字符之间。有人告诉我有语法错误,但不是在哪里。我刚刚将密码强度测试添加到一个更大的程序中,我知道程序的其余部分运行良好,因此这部分是问题所在。
def Password():
global UName
global FName
global SName
global Email
print('A secure password should be between 6 and 12 letters in')
print('length, have upper and lowercase letters and have numbers.')
PWord = input('Please enter a secure password:')
if PWord.isalpha() or if PWord.isdigit():
if len(PWord) < 6 or if len(Pword) > 12:
if PWord.isupper() or if PWord.islower():
print('You need upper and lowercase letters. Try again')
Password()
else:
print('Password is strong')
g = open('Database1.txt', 'a')
g.write('\n' + UName +',')#Writes user details to database file
g.write(FName +',')
g.write(SName +',')
g.write(Email +',')
g.write(PWord +',')
g.close()#Closes file
h = open('Database2.txt', 'a')
Daily = input('Enter your daily energy use target:')
Monthly = input('Enter your monthly energy use target:')
Yearly = input('Enter your yearly energy use target:')
h.write('\n' + UName +',')#Writes user details to the second database file
h.write(Daily +',')
h.write(Monthly +',')
h.write(Yearly +',')
h.write('0' +',')#Other values
h.write('0' +',')#Other values
h.write('0' +',')#Other values
h.write('0' +',')#Other values
h.close()#Closes file
main()#takes user back to menu so they can login
else:
print('Password is not the correct length, try again')
Password()
else:
print('You need letters and numbers, try again')
Password()
UName、FName、SName 和 Email 都取自之前的函数,因此它们被声明为全局变量。
通过注释掉各个部分,我确定该行
if PWord.isalpha() or if PWord.isdigit():
抛出语法错误,但我不知道为什么。我以前创建过这样的系统,但无法确定问题所在。如果有人可以帮助我,我将不胜感激。
【问题讨论】:
-
你遇到了什么语法错误?
-
请简化你的生活,使用
re.search(r'^[A-Za-z0-9]{6,12}$', password)
标签: python-3.x