Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查密码是否弱、中、强_Python - Fatal编程技术网

Python 检查密码是否弱、中、强

Python 检查密码是否弱、中、强,python,Python,这是我的密码: print ("Welcome to password generator!") print ("We will check the level of your password for you!") print ("There are 3 levels. Weak, Medium and Strong") password = raw_input("Enter your password here: ") weak = 'weak, add some extra charac

这是我的密码:

print ("Welcome to password generator!")
print ("We will check the level of your password for you!")
print ("There are 3 levels. Weak, Medium and Strong")
password = raw_input("Enter your password here: ")

weak = 'weak, add some extra characters, upper letters or numbers!'
medium = 'medium, you can add numbers to make it stronger!'
strong = 'strong, you are safe now!'

#Just making sure that password is ok
if len(password) > 12: 
    print ("Password must be longer than 6 and below 12!") 
elif len(password) < 6:
    print ("Password must be longer than 6 and below 12!") 


if password == password.lower or password == password.upper: #Check if password contain lower or upper letters
    print ('Your password is',weak)
if password.lower == password and password.upper == password: #Check if password contain lower and upper letters
    print ('Your password is',medium)
if password.lower == password and password.upper == password and any(str.isdigit(c) for c in password): #Check if password contain any number
    print ('Your password is',strong)

print ("\n")
if password == strong or password == medium or password == weak:
    print ("We are glad we help you, extra tip: Change password every 3-6 months!")
print(“欢迎使用密码生成器!”)
打印(“我们将为您检查密码级别!”)
打印(“有3个级别,弱、中、强”)
密码=原始输入(“在此处输入密码:”)
弱='弱,添加一些额外的字符、大写字母或数字!'
中等='中等,您可以添加数字使其更坚固!'
strong=‘strong,你现在安全了!’
#只是确保密码是正确的
如果len(密码)>12:
打印(“密码必须大于6且小于12!”)
elif len(密码)<6:
打印(“密码必须大于6且小于12!”)
如果password==password.lower或password==password.upper:#检查密码是否包含小写或大写字母
打印('您的密码为',弱)
如果password.lower==密码和password.upper==密码:#检查密码是否包含小写和大写字母
打印('您的密码为',中等)
如果password.lower==password和password.upper==password和any(str.isdigit(c)表示密码中的c):#检查密码是否包含任何数字
打印('您的密码为',strong)
打印(“\n”)
如果密码==强或密码==中等或密码==弱:
打印(“我们很高兴能帮助您,额外提示:每3-6个月更改一次密码!”)
问题是当我输入密码时,例如“newpass”或“newpass1”,我并没有得到任何输出。我希望得到“你的密码是弱的”或中等,。。。
但是什么都没有。

lower
upper
是方法,即需要使用
()
才能真正调用它们

例如,
if password==password.lower():

password='PASS'
打印(密码。较低)
#  
打印(password.lower())
#通过

使用
下部
上部
作为方法:

if password == password.lower() or password == password.upper(): #Check if password contain lower or upper letters
    print ('Your password is',weak)
if password.lower() == password and password.upper() == password: #Check if password contain lower and upper letters
    print ('Your password is',medium)
if password.lower() == password and password.upper() == password and any(str.isdigit(c) for c in password): #Check if password contain any number
    print ('Your password is',strong)

像这样检查小写或大写

if password.islower() or password.isupper():
    print ('Your password is',weak)
if password.islower() == False and password.isupper() == False:
    if any(str.isdigit(c) for c in password):
        print ('Your password is',strong)
    else:
        print ('Your password is',medium)

让我们分析一下这个条件,用在中等和中等强度

if password.lower() == password and password.upper() == password:
它检查密码是否都是大写字母和小写字母。字母不能同时是大写和小写,因此代码永远不会执行。相反,您应该使用:

if password.lower() != password and password.upper() != password:

因为这样可以确保密码不只是包含大写字母和小写字母,所以应该使用带有括号的
password.lower()
password.upper()
,否则调用时它们不会返回字符串,而是返回另一个对象和比较

password == password.lower

与之类似的其他密码将始终返回
False

为什么密码应等于
中等
字符串之一?检查
newpass1
是否等于
weak
medium
strong
字符串。我想你不是这个意思。顺便说一下。这里有很多基本的错误,如果你仔细阅读Python教程可能会更好。这是不同的。问题是检查字符串是否没有大小写差异,而不是是否只有一个大小写您可以将第一个条件翻转为or。你为什么决定翻转等号?我想他是在检查字符串是否是大写字母和小写字母的混合体,如果字符串都是大写字母或小写字母@cricket_007,则为or
password == password.lower