Автор оригинала: Python Examples.
Генерировать случайную строку с Python
Случайная строка может потребоваться для системного сгенерированного прочного пароля или таких других сценариев.
Используя случайный модуль программирования Python, вы можете генерировать такие строки указанной длины и указанные группы символов.
Чтобы генерировать случайную строку определенной длины, выполните следующие действия.
Шаг 1 – Выберите группу символов
Выберите группы символов, из которых вы хотели бы получить символы. строка
Класс обеспечивает следующие группы персонажей:
- string.ascii_letters.
- string.ascii_lowercase.
- String.Ascii_uppercase.
- string.digits.
- string.hexdigits.
- string.letters.
- string.lowercase
- string.octdigits.
- string.puncturation.
- string.printable
- string.uppercase
- String.whiteSpace.
Шаг 2 – Random.Choice ()
Использовать функцию Random.Choice () со всеми группами символов (добавленных + оператора +), передаваемым в качестве аргумента.
random.choice(string.ascii_uppercase + string.digits)
Random.Choice () выбрал один из символов из заданной строки или символов.
Шаг 3 – Повторите сбор персонажей
Повторите это для N раз, чтобы быть длиной случайной строки, которая будет генерироваться.
random.choice(string.ascii_uppercase + string.digits) for _ in range(N)
Шаг 4 – Присоединяйтесь к персонажам
Присоединяйтесь к всем этим N символам.
''.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