Learn Regular Expressions by Building a Password Generator - Step 59

Tell us what’s happening:

Describe your issue in detail here.
What did I do wrong?

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

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

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 59

You appear to have created this post without editing the template. Please edit your post to Tell us what’s happening in your own words.

You forgot this:

Turn the expression inside your for loop into an if statement.

Also, this should be a loop.


I didn’t quite understand. I did this but still failed. Can you help me a bit more?

Turn the expression inside your for loop into an if statement.

Where did your for loop go?

You have an expression in the for loop (you should reset the lesson) that starts with:
constraint <= ...

Make that the condition of an if statement by writing if in front of it (and adding the colon. You added an if in front of your for loop


I still don’t know what I am doing wrong…

Looks like an indentation problem. The if is not aligned with the vertical line below it.

It looks like that line needs one more space to move it to the right a bit, or you could try resetting the problem.

It would help if you copy/pasted your code and not a screenshot.

Yes, thank you that was the problem! Okay the next time I will have a problem I will copy-paste the code, thank you for the advice!

1 Like

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