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