Learn Regular Expressions by Building a Password Generator - Step 65

Tell us what’s happening:

Describe your issue in detail here.
I am getting a print code after setting the arguments and equaling them to the specified numbers but its still wrong . This must be a minute error I am missing somewhere

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        
        if all(
            constraint <= len(re.findall(pattern, password))
            for constraint, pattern in constraints
        ):
            break

    return password
    

/* User Editable Region */

new_password = generate_password(length=8, nums=1, special_chars=1, uppercase=1, lowercase=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/119.0.0.0 Safari/537.36 OPR/105.0.0.0 (Edition std-1)

Challenge Information:

Learn Regular Expressions by Building a Password Generator - Step 65

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.

Check out the original code again:

new_password = generate_password(8)

It’s passing the argument 8 to the function. You should pass the other arguments in the same way, separated by commas.

The way you have done it will work in Python, but it’s just not the way for this test.

You can read more about positional vs keyword function arguments here:
https://www.geeksforgeeks.org/keyword-and-positional-argument-in-python/

1 Like

that ended up working, thought I had to be specific for the arguments. thank you

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