Learn Regular Expressions by Building a Password Generator - Step 57

Tell us what’s happening:

In lesson 57, the instruction asks:

‘‘Within your for loop, compare the constraint and the length of the list returned by findall(). Use the <= operator for that.’’

For that add this line:
``if constraint <= len(re.findall(pattern, password)):‘’

but it doesn’t work, I get this comment:
‘‘You should compare constraint and the length of the list returned by findall using the <= operator inside your for loop.’’
Does anyone know how to solve it??

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 int(constraint[-1]) <= re.findall(pattern, password):
               

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

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 57

It’s a bit non-intuitive, but the instructions do not ask you for an if statement, just the comparison. Sometimes you need to follow the instructions word for word.

Otherwise, the comparison you’ve made is correct.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.