Python | Згенерувати випадковий рядок заданої довжини

Проблема генерації випадкових чисел є досить поширеною, але іноді ми маємо програми, які вимагають від нас покращити це та надати деякі функції генерації випадкового рядка цифр і алфавітів для таких програм, як паролі. Давайте обговоримо певні способи, якими це можна зробити в Python. Тут ми будемо використовувати генерацію випадкового рядка з великими літерами та цифрами

Спосіб 1: генеруйте випадковий рядок за допомогою random.choices()

Це random.choices() функція випадкового модуля може допомогти нам у виконанні цього завдання та надає однострокову альтернативу цілому циклу, який може знадобитися для цього конкретного завдання. Працює з Python> v3.6.

  • String.ascii_uppercase – Повертає рядок у верхньому регістрі.
  • Рядок.цифри – Повертає рядок із цифрами.
  • Рядок.розділові – Повертає рядок із знаками пунктуації
  • String.ascii_letters – Повертає рядок, що містить різні регістри.
  • String.ascii_lowercase – Повертає рядок із малими літерами.

Приклад 1: Генерація випадкового рядка з великими літерами

Python3




import> string> import> random> # initializing size of string> N> => 7> # using random.choices()> # generating random strings> res> => ''.join(random.choices(string.ascii_uppercase> +> > string.digits, k> => N))> # print result> print> (> 'The generated random string : '> +> str> (res))>

Вихід:

The generated random string : 0D5YE91 

Приклад 2: Створення a випадковий рядок заданої довжини в нижньому регістрі

Python3




import> string> import> random> # initializing size of string> N> => 7> # using random.choices()> # generating random strings> res> => ''.join(random.choices(string.ascii_lowercase> +> > string.digits, k> => N))> # print result> print> (> 'The generated random string : '> +> str> (res))>

Вихід:

The generated random string : ipxktny 

Приклад 3: Створення випадкового рядка заданої довжини у верхньому та нижньому регістрах

Python3




import> string> import> random> # initializing size of string> N> => 7> # using random.choices()> # generating random strings> res> => ''.join(random.choices(string.ascii_letters, k> => N))> # print result> print> (> 'The generated random string : '> +> str> (res))>

Вихід:

The generated random string : ALpxvmI 

Спосіб 2: генеруйте випадковий рядок за допомогою secrets.choice()

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

Python3




import> secrets> import> string> # initializing size of string> N> => 7> # using secrets.choice()> # generating random strings> res> => ''.join(secrets.choice(string.ascii_uppercase> +> string.digits)> > for> i> in> range> (N))> # print result> print> (> 'The generated random string : '> +> str> (res))>

Вихід:

The generated random string : T7HPKVR 

Підхід :

Імпортуйте необхідні модулі: random і string.
Визначте функцію з назвою generate_random_string, яка приймає довжину параметра для визначення довжини випадкового рядка для генерації.
Використовуйте string.ascii_letters, щоб отримати всі літери ASCII у нижньому та верхньому регістрах.
Використовуйте random.choice, щоб випадковим чином вибрати символи з літер заданої довжини рядка та об’єднати їх за допомогою .join().
Повернути згенерований рядок.
Використовуйте функцію, передавши потрібну довжину, щоб створити випадковий рядок.

Python3




import> random> import> string> def> generate_random_string(length):> > # Get all the ASCII letters in lowercase and uppercase> > letters> => string.ascii_letters> > # Randomly choose characters from letters for the given length of the string> > random_string> => ''.join(random.choice(letters)> for> i> in> range> (length))> > return> random_string> # Example usage: generate a random string of length 10> random_string> => generate_random_string(> 10> )> print> (random_string)>

Вихід

mFPltLThhj 

Часова складність: O(n), де n – довжина бажаного випадкового рядка.

Допоміжний простір: O(n), де n — довжина потрібного випадкового рядка.