Open In App

How to generate a unique username using Python

A username is a unique name that is mainly used on websites and apps. A username is used to identify a person. For example, if your name is Akshay and you want to create your account on any social media app, here we need a username such that another person can find us. It is not possible to search by Akshay because there may be many users with the name Akshay.

In this article, we will learn to generate username suggestions. We will use some constraints to generate a username. 



Approach: 

We will first take the name of the user, remove space from it and convert it to lowercase. Then we will take some part of the name of the user and then add some digits and special symbols to generate our username.

Steps to generate username:




import random
 
name_of_user = "Akshay Singh"




# Constraints
minimum_capital_letter = 1
minimum_specia_char = 1
minimum_digits = 2
min_len_of_username = 8
special_chars = ['@','#','$','&']




# variable to store generated username
username = ""
 
# remove space from name of user
name_of_user = "".join(name_of_user.split())
 
# convert whole name in lowercase
name_of_user = name_of_user.lower()

random.randint(start,end) function returns a random integer between start and end.
start and end are also included in this range.
Example: random.randint(3,8) will return a number between 3 and 8, including 3 & 8.




# calculate minimum characters that we need to take from name of user
minimum_char_from_name = min_len_of_username-minimum_digits-minimum_specia_char
 
# take required part from name
temp = 0
for i in range(random.randint(minimum_char_from_name,len(name_of_user))):
    if temp < minimum_capital_letter:
        username += name_of_user[i].upper()
        temp += 1
    else:
        username += name_of_user[i]




# temp_list to store digits and special_chars so that they can be shuffled before adding to username
temp_list = []
# add required digits
for i in range(minimum_digits):
    temp_list.append(str(random.randint(0,9)))
 
# append special characters
for i in range(minimum_specia_char):
    temp_list.append(special_chars[random.randint(0,len(special_chars)-1)])
 
# shuffle list
random.shuffle(temp_list)
 
username += "".join(temp_list)
 
print(username)

Code:

Example 1: 

To generate 5 usernames of minimum length 8, the minimum number of digits 2, the minimum number of special characters 2, and minimum capital letters 2






import random
 
def generate_username(name_of_user):
    # Constraints
    minimum_capital_letter = 2
    minimum_specia_char = 2
    minimum_digits = 2
    min_len_of_username = 8
    special_chars = ['@','#','$','&']
 
    # variable to store generated username
    username = ""
 
    # remove space from name of user
    name_of_user = "".join(name_of_user.split())
 
    # convert whole name in lowercase
    name_of_user = name_of_user.lower()
 
    # calculate minimum characters that we need to take from name of user
    minimum_char_from_name = min_len_of_username-minimum_digits-minimum_specia_char
 
    # take required part from name
    temp = 0
    for i in range(random.randint(minimum_char_from_name,len(name_of_user))):
        if temp < minimum_capital_letter:
            username += name_of_user[i].upper()
            temp += 1
        else:
            username += name_of_user[i]
 
    # temp_list to store digits and special_chars so that they can be shuffled before adding to username
    temp_list = []
    # add required digits
    for i in range(minimum_digits):
        temp_list.append(str(random.randint(0,9)))
 
    # append special characters
    for i in range(minimum_specia_char):
        temp_list.append(special_chars[random.randint(0,len(special_chars)-1)])
 
    # shuffle list
    random.shuffle(temp_list)
 
    username += "".join(temp_list)
 
    print(username)
 
 
if __name__ == "__main__":
    name_of_user = "Akshay Singh"
    for i in range(5):
        generate_username(name_of_user)

Output:

 

Example 1: 

To generate 8 usernames of minimum length 6, the minimum number of digits 1, the minimum number of special characters 2, and minimum capital letters 1




import random
 
def generate_username(name_of_user):
    # Constraints
    minimum_capital_letter = 1
    minimum_specia_char = 2
    minimum_digits = 1
    min_len_of_username = 6
    special_chars = ['@','#','$','&']
 
    # variable to store generated username
    username = ""
 
    # remove space from name of user
    name_of_user = "".join(name_of_user.split())
 
    # convert whole name in lowercase
    name_of_user = name_of_user.lower()
 
    # calculate minimum characters that we need to take from name of user
    minimum_char_from_name = min_len_of_username-minimum_digits-minimum_specia_char
 
    # take required part from name
    temp = 0
    for i in range(random.randint(minimum_char_from_name,len(name_of_user))):
        if temp < minimum_capital_letter:
            username += name_of_user[i].upper()
            temp += 1
        else:
            username += name_of_user[i]
 
    # temp_list to store digits and special_chars so that they can be shuffled before adding to username
    temp_list = []
    # add required digits
    for i in range(minimum_digits):
        temp_list.append(str(random.randint(0,9)))
 
    # append special characters
    for i in range(minimum_specia_char):
        temp_list.append(special_chars[random.randint(0,len(special_chars)-1)])
 
    # shuffle list
    random.shuffle(temp_list)
 
    username += "".join(temp_list)
 
    print(username)
 
 
if __name__ == "__main__":
    name_of_user = "Akshay Singh"
    for i in range(8):
        generate_username(name_of_user)

Output:

 


Article Tags :