import login_generator def prompt(): """ We prompt but you KNOW how this works! """ response = "" while not response.isdigit(): response = input("how many login pairs would you like to create?") return int(response) def how_long(): """ And again... (we could combine both prompts, but how?) """ response = "" while not response.isdigit(): response = input("how long should the password be?") return int(response) def complex_or_not(): response = "" while response.lower() not in ["y", "n"]: response = input("you want complex passwords? (y/n)") if response.lower() == "y": return True else: return False def create_login(length, complicated): """ We use our library to generate the username and password. The double return might look confusing but just look at the for loop in the generate_logins functions and you'll see how it unpacks... """ username = login_generator.generate_username() password = login_generator.generate_password(length, complicated) return username, password def generate_logins(number, length, complicated): """ Easy no? But what does the i do? Do we really need it's value? """ for i in range(0, number): username, password = create_login(length, complicated) print("username {}: {}".format(i, username)) print("password {}: {}".format(i, password)) if __name__ == "__main__": # Here we go! number_of_logins = prompt() complicted = complex_or_not() length = how_long() generate_logins(number_of_logins, length, complicted)