import random import string def load_file(filename): """ We load a file and make a list out of it. Note that the same function is used for both files (both adjectives and subjects). Functions should be made as generic as possible. There IS a problem you can fix, some logins will have spaces in them. Try to remove them in this function! """ words = [] with open(filename, "r") as fp: lines = fp.readlines() for line in lines: words.append(line.strip()) # what does strip() do, what does append() do? remember CTRL+Q! return words def generate_username(): """ We'll generate a random pair of adjectives and subjects from two wordlists. You NEED to have both files in you python project for this to work! Note the capitalize method call to make it all prettier... """ adjectives = load_file("./adjectives.txt") subjects = load_file("./subjects.txt") adjective = random.choice(adjectives) subject = random.choice(subjects) username = adjective.capitalize() + subject.capitalize() return username def generate_password(length=10, complictated=True): """ We generate a password with default settings. You can overide these by changing the arguments in the function call. """ password = "" if complictated: chars = string.ascii_letters + string.digits + string.punctuation else: chars = string.ascii_letters for i in range(0, length): password += random.choice(chars) return password if __name__ == "__main__": # let's do some testing! username_test = generate_username() print(username_test) password_test = generate_password() print(password_test)