def has_uppercase_1(password):
    for char in password:
        if char.isupper():
            return True
    return False

# help for isupper and islower methods:
# isupper: Return True if all cased characters in S are uppercase
# and there is at least one cased character in S, False otherwise.
# islower: Return True if all cased characters in S are lowercase
# and there is at least one cased character in S, False otherwise.
    
def has_uppercase_2(password):
    return not password.islower()

# your choice:
has_uppercase = has_uppercase_1
# has_uppercase = has_uppercase_2


def check_password_1(pnew, pprevious):
    if pnew == pprevious:
        return 1
    else:
        if len(pnew)<8:
            return 2
        else:
            if not has_uppercase(pnew):
                return 3
            else:
                return 0
            
def check_password_2(pnew, pprevious):
    if pnew == pprevious:
        return 1
    elif len(pnew)<8:
        return 2
    elif not has_uppercase(pnew):
        return 3
    else:
        return 0
            
# your choice:
check_password = check_password_1
# check_password = check_password_2
