Случайная строка может потребоваться для надежного пароля, созданного системой, или для других подобных скриптов.
Используя модуль 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