Python Forum
Random Passcode Generator function - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: General (https://python-forum.io/forum-1.html)
+--- Forum: Code sharing (https://python-forum.io/forum-5.html)
+--- Thread: Random Passcode Generator function (/thread-31843.html)



Random Passcode Generator function - romeo777 - Jan-06-2021

Hi, I just started learning to program a couple months ago, and I wrote this function to generate a Password to a desired length. Please tell me what you think, and if/how it can be improved upon... Thank you

def pass_code_generator(x):
    saved_variable = ""
    while len(saved_variable) <= x:
        alphabet = list("abcdefghijklmnopqrstuvwxyz")
        rndm_lttr = random.randint(0,25)
        rndm_number = random.randint(0,10)

        if rndm_number % 2 == 0:
            rndm_number = str(rndm_number)
            saved_variable += rndm_number
        else:
            saved_variable+= saved_variable.join(alphabet[rndm_lttr:rndm_lttr+1])
            
    return saved_variable



RE: Random Passcode Generator function - horrorfodrasz - Jan-06-2021

I think it will put only even numbers into your generated code (and will replace odd numbers to letters), won't it? Maybe I wouldn't close out even numbers.

from random import *
def pass_code_generator(x):
    saved_variable = ""
    while len(saved_variable) <= x:
        alphabet = list("abcdefghijklmnopqrstuvwxyz")
        rndm_lttr = randrange(0,25)
        rndm_number = randrange(0,10)
        if rndm_lttr >= 12:
            rndm_number = str(rndm_number)
            saved_variable += rndm_number
        else:
            saved_variable+= saved_variable.join(alphabet[rndm_lttr:rndm_lttr+1])
             
    return saved_variable



RE: Random Passcode Generator function - buran - Jan-06-2021

@horrorfodrasz, star import is considered bad practice and is generally discouraged

Both code snippets have caveats that - e.g. omit letters at certain indexes, while add numbers instead.
also I don't think you understand how this line works

saved_variable+= saved_variable.join(alphabet[rndm_lttr:rndm_lttr+1])

as an advise - look at random.choices()