Learn Regular Expressions by Building a Password Generator - Step 57

Tell us what’s happening:

My code don’t return any errors, what do I need to change?

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
        for constraint, pattern in constraints:
            if constraint <= len(re.findall(pattern, password)):
                pass

# 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/136.0.0.0 Safari/537.36

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 57

For this step, you don’t need to create an if condition here, or include the pass keyword.
Just put the comparison for now. The rest will come in the next few steps.

what was the purpose of using comparison but never doing anything with the result (True/False)? it doesn’t make sense to throw the result away in this step.

it’s a complex comparison, so it’s built step by step