如何在我的代码中添加if语句?

时间:2019-05-06 14:46:55

标签: python python-3.x ipython

我正在编写密码复杂性代码...我已经完成了程序,它说与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个字符并且必须包含数字。

3 个答案:

答案 0 :(得分:1)

您不需要if re.search(r'[A-Z]', password) == True:,只需放if re.search(r'[A-Z]', password),因为这些返回了ObjectNone, 在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