Feedback for Learn Regular Expressions by Building a Password Generator - Step 55

Tell us what’s happening:

I’ve already solved this one, but I feel like sometimes this site does not really explain things thoroughly, or really help you sort out what needs to be implemented in your code, with good hints.

In my case; using the ‘re’ module for this lesson. The site could do a better job of explaining you need to use re.findall() not just findall() in the instructions. Not trying to make the lessons SUPER easy, but it took me way too long to figure out that re was needed.

Don’t want a handout, just want a bit of a more directional hint is all! I wouldnt have known to use re without some major research on the forum.

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:

# User Editable Region

    return password

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

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) 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 55

1 Like

Would you like to add this feedback to our issue tracker? Just open a new issue on github please

Thank you for this, I couldn’t figure out what the issue was