Learn Regular Expressions by Building a Password Generator - Step 63

Tell us what’s happening:

Describe your issue in detail here.
The instructions say as followed:
Having all([expression for i in iterable]), means that a new list is created by evaluating expression for each i in iterable. After the all() function iterates over the newly created list, the list is deleted automatically, since it is no longer needed.

Memory can be saved by using a generator expression. Generator expressions follow the syntax of list comprehensions but they use parentheses instead of square brackets.

Change your list comprehension into a generator expression by removing the square brackets.

To my understanding all I have to do is remove the square brackets however, I have done just that and I still get this error message:
Sorry, your code does not pass. Keep trying.

You should turn your list comprehension into a generator expression by removing the square brackets.

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}]')            
        ]

        # Check constraints
        count = 0

# User Editable Region
# As you can see, all square brackets (‘[’ and ‘]’) are removed. 
        if all(
            (
                constraint <= len(re.findall(pattern, password))
                for constraint, pattern in constraints
            )
        ):
# The line above this describes my emotions write now. ): or :(.
# User Editable Region

            break
    
    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/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.15

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 63

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.

Also what is this supposed to mean?

Never mind I just needed to remove the square brackets not remove and replace them with parenthesis. Sorry. Overthinking it again. Next time I’ll try not to. :rofl: It’s kinda crazy to think it was that simple. :slight_smile: :+1:

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