Learn Regular Expressions by Building a Password Generator - Step 60

Tell us what’s happening:

What happened with my if statement guys. I need help

Your code so far

import re
import secrets
import string


def generate_password(length, nums, special_chars, uppercase, lowercase):
    # Define the possible characters for the password
    letters = string.ascii_letters
    digits = string.digits
    symbols = string.punctuation

    # Combine all characters
    all_characters = letters + digits + symbols

    while True:
        password = ''
        # Generate password
        for _ in range(length):
            password += secrets.choice(all_characters)
       
        constraints = [
            (nums, r'\d'),
            (lowercase, r'[a-z]'),
            (uppercase, r'[A-Z]'),            
            (special_chars, fr'[{symbols}]')            
        ]

# User Editable Region

        # Check constraints
        count = 0
        for constraint, pattern in constraints:
            print(constraint)
            if constraint <= len(re.findall(pattern, password)):
                count += 1
        if count == 4:
            break

# User Editable Region

    return password

# new_password = generate_password(8)
# print(new_password)

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 60

Welcome back to the forum @lamto20050505

Here is a comparison of the original code and your code.

The code in blue is the your code, the code in red is the original code.
The code in magenta is the overlap.

Try removing print(constraint)

Happy coding