본문 바로가기
Python/Python 패키지

Python 파이썬 랜덤 숫자, 랜덤 문자, random() 다루기

by 베타코드 2022. 1. 5.
반응형

안녕하세요 독학코딩입니다. 오늘은 파이썬에서 랜덤 하게 숫자, 글자를 생성하는 방법에 대해서 배워보겠습니다. 방법만 알고 있다면 아주 쉽고, 비밀번호 혹은 인증번호 등을 생성하는데 많이 사용되니 잘 알아두시면 좋습니다.

제목에도 쓰여있지만 가장 먼저 random 패키지를 import 해야 합니다. 하지만 기존의 방식과는 조금 다른게 해야 합니다.

from random import *

이렇게 import 할 것입니다. 물론 import random 이렇게만 하셔도 됩니다. 다만 그런 경우 random.random() 이런 식으로 random패키지를 사용해야 되기 때문에 불필요한 반복을 줄이기 위해 위와 같이 import 합니다.

from 패키지 import 함수

보통은 위와 같은 import 방식은 어떤 패키지에서 특정 함수만 import 를 하고 싶을 때 이렇게 합니다. 함수 부분에 * 을 작성하면 모든 함수를 import 하는 것입니다. 굳이 * 를 쓰는 건 위에서 설명했듯이 불필요한 반복을 줄이기 위해서입니다.

 

 

Python 랜덤 숫자 생성

 

  • 0.0 ~ 1.0 미만의 랜덤 수 생성
print(random())

 

  • 숫자 x.0 미만까지 랜덤 수
print(random()*x)

 

  • 숫자 x 미만까지 랜덤 수
print(int(random()*x))

 

  • 숫자 x 이하까지 랜덤 수
print(int(random()*x)+1)

 

  • x ~ y 미만의 랜덤 수
print(randrange(x, y))

 

  • x ~ y 이하의 랜덤 수
print(randint(x, y))

 

 

Python 랜덤 문자 생성

랜덤 문자를 생성하기 위해서는 import string를 해야 합니다. 아래의 모든 예제는 10 부분을 수정하면 원하는 n자리의 랜덤 문자를 생성할 수 있습니다.

  • 10자 랜덤 소문자 생성
letters = string.ascii_lowercase
print(''.join(choice(letters) for i in range(10)))

 

  • 10자 랜덤 대문자 생성
letters = string.ascii_uppercase 
print(''.join(choice(letters) for i in range(10)))

 

  • 10자 랜덤 대, 소문자 생성
letters = string.ascii_letters
print(''.join(choice(letters) for i in range(10)))

 

  • 10자 랜덤 숫자 생성
    랜덤 숫자를 만드는데 굳이 이렇게 해야 되나 싶지만, 이 방법은 n자리의 숫자를 만들 때 유용한 방식입니다.
letters = string.digits
print(''.join(choice(letters) for i in range(10)))

 

  • 10자 랜덤 특수문자 생성
letters = string.punctuation
print(''.join(choice(letters) for i in range(10)))
반응형

댓글