Skip to main content

How to generate a random string with Python.


Photo by Pixabay.


Hello everyone, welcome back to my blog. Today I will talk about how to generate a random string with Python. As a developer developing random strings is a vital task. I am working on a simple URL shortener app with Django. I will bring another article on that project as well.


Before getting started, don't forget to subscribe to my blog using the subscribe button in the top-right corner.


Importing modules.


To get our job done, we have to import two important modules. They are built-in and no need to use PIP to install.

  1. random module.
  2. string module.


here we use the random module to choose some random characters which are provided by the string module.

you can use the following piece of code to import them.

import random
import string

Writing the function

To generate the random string we can create a function that returns the random string whenever we call.




def create_string(size = 10, chars = string.ascii_lowercase+string.digits):
    return "".join(random.choice(chars) for _ in range(size))


here we can adjust the size of the string. I have set it to 10. Each time we call it it will return a random string of 10 characters. 


chars is the parameter that contains the list of characters we can use to create the random string.


Characters.


we can simply get the lists of characters with the help of the string module.
You can simply visit this support article: https://docs.python.org/3/library/string.html to learn more.

you can add the lists together using the + operator.
 

Function Breakdown.

Here we tell python to join characters together with an empty string. if we use
"-".join(...)  instead of the empty string it will return a random string like this:

s-s-3-b-d-w-9-9-9-z


Then we tell python to choose random characters from the chars using a for-loop.


We can use the following code to understand the above one-line code. 

def generate(size=10,chars=string.ascii_letters+string.digits):
    selected_chars = []

    for _ in range(size):
        char = random.choice(chars)
        selected_chars.append(char)

    return "".join(selected_chars)

print(generate())


this will return the same result.
If you have any questions, please let me know in the comment section.


Final Code.


import random,string
def create_string(size = 10, chars = string.ascii_lowercase+string.digits):
    return "-".join(random.choice(chars) for _ in range(size))
create_string()


It is a simple 4-line code.

Thank you for reading and don't forget to share this if you learned something new.

Comments

Trending Now

Let's talk about cryptography.

Have you ever heard of cryptography?  People write their diaries every day. For many of them, their diary is one of their best friends to whom they tell their every secret. What happens when someone else finds such a diary? That would freak out the dairy's owner for sure. Also, it might put their lives in danger. Wise men always hide their diaries so no one else finds it.  But legends hide their message so that only they can read what they wrote. So even if the diary is found by someone else, they cannot know the secrets. for example, I wrote this in my diary today.   P dyval h isvn wvza hivba jyfwavnyhwof avkhf Can you understand it? This is just a very primitive level of cryptography yet powerful enough to hide what I wrote from 90% of people. I will discuss this type of cryptography in the next blog post. The human used cryptography from the very beginning to share their messages in secret and conceal their inventions. As you may know, many people tried to find a recip...

Generate all possible phone numbers with Python | Generates Crores of Phone Numbers within minutes.

Recently,  I learned about itertools in python. Especially, about the functions permutations, combinations, and products and I tried to make a script that generates all phone numbers in our country. I bet your phone number is too on the list. let the hack begin!!! First, you need to install itertools in your computer  Simply open your terminal and type                sudo apt-get  install  -y python-more- itertools Then Write the code below from itertools import product file_name = "phonebook.txt" phonebook = open (file_name, 'a' ) prefixes = [ '+9471' ] product_a = product([ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '0' ], [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '0' ], [ '1' , '2' , '3' , '4' , '5...