파이썬에는 random모듈은 난수(Random Number) 생성 관련 함수를 지원합니다.
먼저 random을 사용하기 위해서는 다음과 같이 추가해야 합니다.
import random
random()
random()은 0 이상~1 미만 사이의 실수를 랜덤 하게 반환합니다.
import random
for i in range(5):
print(random.random())
uniform()
uniform(x, y)은 두 수를 받아 x <= n <y의 실수를 랜덤 하게 반환합니다.
import random
for i in range(5):
print(random.uniform(0, 100))
randint()
radint(x, y)는 두 개의 정수를 받아 x<= n <=y의 정수를 랜덤하게 반환합니다.
import random
for i in range(5):
print(random.randint(0, 5))
randrange()
randrange(start, end, step)은 두개의 정수를 받아서 start <= n <end의 정수를 랜덤 하게 반환합니다.
단 랜덤하게 반환되는 정수는 step의 증가 폭에 따라서 결정됩니다.
(step은 생략 가능 생략하면 자동으로 1이 됩니다.)
import random
for i in range(5):
print(random.randrange(1, 100, 3))
random모듈은 난수 생성뿐만 아니라 랜덤 생성 관련 함수도 다양하게 있습니다.
shuffle()
요소를 랜덤 하게 섞어줍니다.
import random
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(a)
print(a)
choice()
요소중 한 가지를 랜덤 하게 선택합니다.
import random
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.choice(a))
sample()
랜덤하게 정해서 숫자만큼 요소를 정해서 리스트형으로 반환합니다.
import random
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.sample(a, 5))
seed()
seed(a)는 난수 생성기를 초기화해줍니다.
여기서 중요한 건 seed()를 생략하거나 a=None 아무것도 넘겨주지 않으면(random.seed())일반적으로 현재 시스템 시간이 사용되어 임의의 난수를 생성합니다.
하지만 a에 값을 넘겨주게 되면 고정된 값을 반환합니다.
import random
for i in range(3):
random.seed(1)
print(random.random())
print()
for i in range(3):
random.seed('a')
print(random.uniform(0, 100))
print()
for i in range(3):
random.seed(100)
print(random.randrange(1, 100, 3))
print()
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(3):
random.seed(100)
print(random.sample(a, 5))
random 모듈에서 많이 사용하는 함수에 대해 알아봤습니다.
'공부 자료실 > 파이썬(Python)' 카테고리의 다른 글
파이썬(Python) - 외부 모듈 설치 (0) | 2020.07.30 |
---|---|
파이썬(Python) - 수학 관련 math모듈 (1) | 2020.07.29 |
파이썬(Python) - 얕은 복사, 깊은복사 (0) | 2020.07.27 |
파이썬(Python) - 예외 처리(Exception) _ raise, assert (1) | 2020.07.18 |
파이썬(Python) - 예외 처리(Exception) (0) | 2020.07.17 |
댓글