我正在编写密码复杂性代码...我已经完成了程序,它说与true的比较应该是if cond is true:
或if cond:
,但我无法弄清楚< / p>
这是我的程序,我真的无法添加或修复其中的任何内容:
import re
print('Please copy the following: password()')
def password():
print('Make sure that your password has the following rules:')
print('1. more than 8 characters')
print('2. has a compination of uppercase and lowercase letters')
print('3. has digits')
while True:
password == input('password: ')
if password < 8:
break
print('Password must be at least 8 characters')
if re.search(r'\d', password):
if re.search(r'\d', password) == True:
print('it has a digit')
else:
print('Password must contain digits')
if re.search(r'[A-Z]', password):
if re.search(r'[A-Z]', password) == True:
print('it has uppercase letters')
else:
print('Password must contain upper case letters')
if re.search(r'[a-z]', password):
if re.search(r'[a-z]', password) == True:
print('it has lowercase letters')
else:
print('Password must contain lowercase letters')
如果密码没有小写字母,大写字母,没有数字或少于8个字符,则应这样说
例如,我希望abcABC
的输出说它必须至少8个字符并且必须包含数字。
答案 0 :(得分:1)
您不需要if re.search(r'[A-Z]', password) == True:
,只需放if re.search(r'[A-Z]', password)
,因为这些返回了Object
或None
,
在Python中,if my_variable:
等效于if my_variable is not None:
,具体取决于您的变量数据类型
答案 1 :(得分:1)
我将假设您在此行TypeError
中获得if password < 8:
,使您认为自己不知道如何使用if语句。确实,您不想检查密码是否小于8,这是一个垃圾密码,您想检查密码的长度,如下所示:
if len(password) < 8:
供以后参考:张贴EXACT错误消息(带有所有“垃圾”)对于我们找出错误之处非常有帮助。您应该养成发布完整追溯的习惯。
编辑:我还注意到password == input('password: ')
这行应该只有一个等号。按照您编写的方式,python正在检查它们是否相同,结论为“ no”,然后移至下一行。使用等号,您将设置输入到password变量的内容。
答案 2 :(得分:-1)
您可以仅使用if条件,如下所示:
if condition:
# Do something