Learn Regular Expressions by Building a Password Generator - Step 66

Tell us what’s happening:

Already figured out the solution but I got confused about the direction prompt mentioning “spam” as the example function’s call. Would I be able to get some clarification of what the “spam” call out is supposed to represent? Here’s the example given that I was confused by:

def add(x, y):
    return x + y

spam(x=1, y=7) # 8

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'),
            (special_chars, fr'[{symbols}]'),
            (uppercase, r'[A-Z]'),
            (lowercase, r'[a-z]')
        ]

        # Check constraints        
        if all(
            constraint <= len(re.findall(pattern, password))
            for constraint, pattern in constraints
        ):
            break
    
    return password
    

# User Editable Region

new_password = generate_password(8, 1, 1, 1, 1)
print(new_password)

# User Editable Region

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 Edg/122.0.0.0

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 66

Seems like a typo…

I can say that the variable spam is often used in Python examples, but here looks like it should be referring to the add() function

That makes more sense, thank you for clarifying and sharing your impression of it.

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