Генерация случайной последовательности символов python

Как сгенерировать случайную строку в Python

Мы можем сгенерировать случайную строку в Python, используя модуль random. Иногда мы хотим сгенерировать случайную строку для уникальных идентификаторов, идентификатора сеанса или предложить пароль.

Как Python генерирует случайную строку?

Давайте определим служебную функцию для генерации случайной строки в Python из заданной последовательности символов и заданного размера.

import random import string def random_string_generator(str_size, allowed_chars): return ''.join(random.choice(allowed_chars) for x in range(str_size)) chars = string.ascii_letters + string.punctuation size = 12 print(chars) print('Random String of length 12 =', random_string_generator(size, chars))
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%'()*+,-./:;?@[\]^_`<|>~ Random String of length 12 = 'MP'?EI$MO%w

Мы используем функцию random.choice() для выбора случайного символа из предоставленной последовательности символов. Затем мы используем цикл for, чтобы запустить его заданное количество раз. Затем мы используем функцию string join(), чтобы объединить их и вернуть случайно сгенерированную строку.

Генерация случайных строк в Python

Что, если мы хотим сохранить случайный размер строки в качестве переменной, скажем, от 8 до 12 символов. Давайте немного подправим нашу функцию, чтобы случайным образом выбрать размер случайной строки.

import random from random import randint import string def random_string_generator_variable_size(min_size, max_size, allowed_chars): return ''.join(random.choice(allowed_chars) for x in range(randint(min_size, max_size))) chars = string.ascii_letters + string.punctuation print('Random String of random length (6-12) =', random_string_generator_variable_size(6, 12, chars))

Вывод: Случайная строка произвольной длины (6–12) = d; @o /? [Yq =

Случайная строка произвольной длины

Код почти такой же, как и у предыдущей функции, за исключением использования функции randint(). Это делается для случайного выбора размера случайно сгенерированной строки.

Генерация случайных UUID

Если вам нужен уникальный идентификатор, основанный на спецификациях RFC-4122, вы можете использовать модуль Python uuid.

import uuid print('Random UUID from uuid1() =', uuid.uuid1()) print('Random UUID from uuid4() =', uuid.uuid4())
Random UUID from uuid1() = dcc1044e-d76b-11e8-b54e-186590db0e15 Random UUID from uuid4() = a0e98c8d-a6fd-4125-bc1c-69ffe6456cb6

Источник

Как сгенерировать случайную строку в Python

Случайным называется набор данных или информации, которые могут быть доступны в любом порядке. Модуль random в Python используется для генерации случайных строк. Случайная строка состоит из чисел, символов и знаков препинания, которые могут содержать любой узор. Модуль random содержит два метода random.choice() и secrets.choice() для генерации защищенной строки. Давайте разберемся, как сгенерировать случайную строку с помощью методов random.choice() и secrets.choice() в python.

генерация случайной строки python

Использование random.choice()

Функция random.choice() используется в строке Python для генерации последовательности символов и цифр, которые могут повторять строку в любом порядке.

Создадим программу для генерации случайной строки с помощью функции random.choices().

import string import random # define the random module S = 10 # number of characters in the string. # call random.choices() string module to find the string in Uppercase + numeric data. ran = ''.join(random.choices(string.ascii_uppercase + string.digits, k = S)) print("The randomly generated string is : " + str(ran)) # print the random data

Использование random.choice()

Ниже приведен метод, используемый в модуле random для генерации случайной строки.

Методы Описание
String.ascii_letters Возвращает случайную строку, содержащую как прописные, так и строчные буквы.
String_ascii_uppercase Это метод случайной строки, который возвращает только строку в верхнем регистре.
String.ascii_lowercase Метод случайной строки, который возвращает строку только в нижнем регистре.
String.digits Возвращает строку с числовыми символами.
String.punctuation Метод, возвращающий строку с символами пунктуации.

Сгенерировать случайную строку из прописных и строчных букв:

# write a program to generate the random string in upper and lower case letters. import random import string def Upper_Lower_string(length): # define the function and pass the length as argument # Print the string in Lowercase result = ''.join((random.choice(string.ascii_lowercase) for x in range(length))) # run loop until the define length print(" Random string generated in Lowercase: ", result) # Print the string in Uppercase result1 = ''.join((random.choice(string.ascii_uppercase) for x in range(length))) # run the loop until the define length print(" Random string generated in Uppercase: ", result1) Upper_Lower_string(10) # define the length

Генерация строки из строчных и прописных букв

Случайная строка указанных символов:

# create a program to generate the random string of given letters. import random import string def specific_string(length): sample_string = 'pqrstuvwxy' # define the specific string # define the condition for random string result = ''.join((random.choice(sample_string)) for x in range(length)) print(" Randomly generated string is: ", result) specific_string(8) # define the length specific_string(10)

Строка из указанных символов

Примечание. Метод random.choice() используется в программе Python для повторения одинаковых строк символов. Если мы не хотим отображать повторяющиеся символы, то должны использовать функцию random.sample().

Сгенерировать случайную строку без повторения одних и тех же символов:

# create a program to generate a string with or without repeating the characters. import random import string print("Use of random.choice() method") def specific_string(length): letters = string.ascii_lowercase # define the lower case string # define the condition for random.choice() method result = ''.join((random.choice(letters)) for x in range(length)) print(" Random generated string with repetition: ", result) specific_string(8) # define the length specific_string(10) print("") # print the space print("Use of random.sample() method") def WithoutRepeat(length): letters = string.ascii_lowercase # define the specific string # define the condition for random.sample() method result1 = ''.join((random.sample(letters, length))) print(" Random generated string without repetition: ", result1) WithoutRepeat(8) # define the length WithoutRepeat(10)

Генерация строки без повтора

Как видно из вышеприведенного вывода, метод random.sample() возвращает строку, в которой все символы уникальны и не повторяются. В то время как метод random.choice() возвращает строку, которая может содержать повторяющиеся символы. Итак, можно сказать, что если мы хотим сгенерировать уникальную случайную строку, нужно использовать метод random.sample().

Создание случайной буквенно-цифровой строки из фиксированных букв и цифр

Например, предположим, что нам нужна случайно сгенерированная буквенно-цифровая строка, содержащая пять букв и четыре цифры. Нам нужно определить эти параметры в функции.

Напишем программу для генерации буквенно-цифровой строки, содержащей фиксированное количество букв и цифр.

import random import string def random_string(letter_count, digit_count): str1 = ''.join((random.choice(string.ascii_letters) for x in range(letter_count))) str1 += ''.join((random.choice(string.digits) for x in range(digit_count))) sam_list = list(str1) # it converts the string to list. random.shuffle(sam_list) # It uses a random.shuffle() function to shuffle the string. final_string = ''.join(sam_list) return final_string # define the length of the letter is eight and digits is four print("Generated random string of first string is:", random_string(8, 4)) # define the length of the letter is seven and digits is five print("Generated random string of second string is:", random_string(7, 5))

Фиксированное количество букв и цифр

Использование secrets.choice()

Метод secrets.choice() используется для генерации более безопасной случайной строки, чем random.choice(). Это криптографически случайный генератор строк, который гарантирует, что никакие два процесса не могут получить одинаковые результаты одновременно с использованием метода secrets.choice().

Напишем программу для вывода безопасной случайной строки с помощью метода secrets.choice.

import random import string import secrets # import package num = 10 # define the length of the string # define the secrets.choice() method and pass the string.ascii_letters + string.digits as an parameters. res = ''.join(secrets.choice(string.ascii_letters + string.digits) for x in range(num)) # print the Secure string print("Secure random string is :"+ str(res))

Метод secrets.choice()

Применение метода случайного модуля, чтобы сгенерировать безопасную случайную строку

Напишем программу для печати безопасных случайных строк с использованием различных методов secrets.choice().

# write a program to display the different random string method using the secrets.choice(). # imports necessary packages import random import string import secrets num = 10 # define the length of the string # define the secrets.choice() method and pass the string.ascii_letters + string.digits as an parameters. res = ''.join(secrets.choice(string.ascii_letters + string.digits) for x in range(num)) # Print the Secure string with the combination of ascii letters and digits print("Secure random string is :"+ str(res)) res = ''.join(secrets.choice(string.ascii_letters) for x in range(num)) # Print the Secure string with the combination of ascii letters print("Secure random string is :"+ str(res)) res = ''.join(secrets.choice(string.ascii_uppercase) for x in range(num)) # Print the Secure string in Uppercase print("Secure random string is :"+ str(res)) res = ''.join(secrets.choice(string.ascii_lowercase) for x in range(num)) # Print the Secure string in Lowercase print("Secure random string is :"+ str(res)) res = ''.join(secrets.choice(string.ascii_letters + string.punctuation) for x in range(num)) # Print the Secure string with the combination of letters and punctuation print("Secure random string is :"+ str(res)) res = ''.join(secrets.choice(string.digits) for x in range(num)) # Print the Secure string using string.digits print("Secure random string is :"+ str(res)) res = ''.join(secrets.choice(string.ascii_letters + string.digits + string.punctuation) for x in range(num)) # Print the Secure string with the combonation of letters, digits and punctuation print("Secure random string is :"+ str(res))

Источник

Читайте также:  Ajax xml json html
Оцените статью