logo

파이썬 | 주어진 길이의 무작위 문자열 생성

난수 생성 문제는 매우 일반적이지만 때로는 이를 개선하고 비밀번호와 같은 애플리케이션에 대해 임의의 숫자 및 알파벳 문자열을 생성하는 일부 기능을 제공해야 하는 애플리케이션이 있습니다. Python에서 이것이 수행될 수 있는 특정 방법에 대해 논의해 보겠습니다. 여기서는 대문자와 숫자를 사용한 무작위 문자열 생성을 사용하겠습니다.

방법 1: random.choices()를 사용하여 무작위 문자열 생성

이것 무작위.선택() 무작위 모듈의 기능은 이 작업을 수행하는 데 도움이 될 수 있으며 이 특정 작업에 필요할 수 있는 전체 루프에 대한 단일 라이너 대안을 제공합니다. Python> v3.6에서 작동합니다.



  • 문자열.ascii_uppercase – 대문자로 문자열을 반환합니다.
  • 문자열.숫자 – 숫자가 포함된 문자열을 반환합니다.
  • 문자열.구두점 – 구두점이 포함된 문자열을 반환합니다.
  • 문자열.ascii_letters – 다양한 케이스가 포함된 문자열을 반환합니다.
  • 문자열.ascii_lowercase – 문자열을 소문자로 반환합니다.

예시 1: 대문자를 사용한 무작위 문자열 생성

파이썬3








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))>

>

>

출력 :

SQL은 여러 테이블에서 선택
The generated random string : 0D5YE91>

예 2: 생성 무작위의 소문자로 된 주어진 길이의 문자열

파이썬3




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: 대문자와 소문자로 지정된 길이의 임의 문자열 생성

파이썬3




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에서 임의의 문자열과 비밀번호 생성 비밀.선택(). 암호화적으로 더 안전한 난수를 위해 내부 알고리즘이 예측하기 어려운 난수를 생성하는 방식으로 구성되어 있으므로 비밀 모듈의 이 기능을 사용할 수 있습니다.

파이썬3




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()을 사용하여 연결합니다.
생성된 문자열을 반환합니다.
원하는 길이를 전달하여 함수를 사용하여 임의의 문자열을 생성합니다.

파이썬3




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은 원하는 임의 문자열의 길이입니다.