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

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

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

Чтобы сгенерировать случайную строку определенной длины, выполните следующие действия.

Шаг 1: выберите группу символов

Выберите группы, из которых вы хотите подобрать символы. Строковый класс предоставляет следующие группы:

  • string.ascii_letters;
  • string.ascii_lowercase;
  • string.ascii_uppercase;
  • string.digits;
  • string.hexdigits;
  • string.letters;
  • string.lowercase;
  • string.octdigits;
  • string.punctuation;
  • string.printable;
  • string.uppercase;
  • string.whitespace.

Шаг 2: random.choice()

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

random.choice(string.ascii_uppercase + string.digits)

random.choice() выбирает один из символов из данной строки или символов.

Шаг 3: повторите выбор

Повторите это N раз, где N – длина генерируемой случайной строки.

random.choice(string.ascii_uppercase + string.digits) for _ in range(N)

Шаг 4: объединение символов

Объдините:

''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(N))

Пример

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

import random
import string

def randStr(chars = string.ascii_uppercase + string.digits, N=10):
	return ''.join(random.choice(chars) for _ in range(N))

# default length(=10) random string
print(randStr())
# random string of length 7
print(randStr(N=7)) 
# random string with characters picked from ascii_lowercase
print(randStr(chars=string.ascii_lowercase))
# random string with characters picked from 'abcdef123456'
print(randStr(chars='abcdef123456'))
4FH2R5SQ9D
8STJX1L
iihvalhdwc
d35bbbfcea

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *