What is the most elegant way to choose a random char from a string, list or tuple?
It’s random.choice(some_string)
I build a simple password generator that will build a password the length the user has chosen.
If the length is smaller than 8 though the user will have to redo his entry.
This is what the output looks like:
This is what the code looks like:
# A simple password generator
# creates a random String
# will ask anew if length was too short
import random
# the string contains all the chars we want to use.
alphabet = "1234567890abcdefghijklmnopqrstuvwxyz!@#$%^&<>?ABCDEFGHIJKLMNOPQRSTUVWXYZ"
def pass_gen(pass_length):
    i = 1
    password = ""
    
    if (int(pass_length) >= 8):
        while i <= int(pass_length):
            # random.choice() is the shortest and lean way
            # to select a random char from a string, list or tuple
            password = password + random.choice(alphabet)
            i += 1
    else:
        pass_gen(input("Chosen length too short. Enter a length (min 8): "))
    print(password)
pass_gen(input("Enter the maximum length of your password (min 8): "))
You find more information about random.choice() here.
