안녕하세요, 이번 포스팅은 파이썬 random 모듈 활용방법 예제코드 대해서 작성하도록 하겠습니다.
파이썬 코드를 구현할 때 로또 프로그램을 만들 때 무작위 숫자를 추출하는 모듈이 바로 random 모듈입니다.
random 모듈은 여러가지 방향으로 활용 가능하니 제가 설명드리는 내용 참조 하셔서 꼭 활용해 보시는 걸 추천 드립니다.
목차
파이썬 random 모듈
파이썬에서 ‘random’ 모듈은 파이썬의 표준 라이브러리 중 하나로, 다양한 확률 및 통계 관련 함수를 제공하는데 활용하는 모듈입니다.
random 모듈을 활용하면 간편하게 무작위 데이터를 생성하거나 선택할 수 있습니다.
random 모듈에는 여러 가지 기본적인 함수들이 있습니다.
이 중에서 가장 많이 사용되는 대표적인 함수와 그 사용법에 대해 설명 드리도록 하겠습니다.
일단 random 모듈의 가장 기본적인 함수는 ‘random()’, ‘randint()’, ‘randrange()’입니다.
✔ random() : 0과 1 사이의 부동소수점 숫자를 반환
✔ randint(a, b) : a부터 b까지의 정수 중에서 무작위로 하나를 선택하여 반환
✔ randrange(start, stop, step) : start부터 stop까지 step 간격의 정수 중 하나를 무작위로 출력
그럼 ‘random()’, ‘randint()’, ‘randrange()’ 대해서 예제 코드까지 해서 좀 더 자세히 설명 드리도록 하겠습니다.
1) random
‘random()’ 함수는 0 이상 1 미만의 부동소수점 숫자를 반환합니다.
import random
# 0과 1 사이의 무작위 부동소수점 값 추출
print(random.random())
위 코드를 실행하면 0과 1 사이의 무작위 부동소수점 값을 얻을 수 있습니다.
2) randint(a, b)
‘randint(a, b)’ 함수는 a부터 b까지의 정수 중에서 무작위로 하나를 선택하여 반환합니다.
import random
#1에서 10 사이의 무작위 정수 값을 반환
print(random.randint(1, 10))
위 코드는 1에서 10 사이의 무작위 정수 값을 반환합니다.
3) randrange(start, stop, step)
‘randrange(start, stop, step)’ 함수는 start부터 stop까지 step 간격의 정수 중 하나를 무작위로 선택합니다. step은 생략 가능하며 기본값은 1입니다.
import random
# 0에서 10 사이의 짝수 중 하나를 무작위로 반환
print(random.randrange(0, 10, 2))
위 코드는 0에서 10 사이의 짝수 중 하나를 무작위로 반환합니다.
random 모듈 고급 함수
random 모듈에는 다양한 고급 기능들이 포함되어 있습니다.
이번에는 몇몇 대표적인 고급 함수와 그 사용법에 대해 알아보겠습니다.
1) uniform(a, b)
`uniform(a, b)` 함수는 a와 b 사이의 부동소수점 숫자를 무작위로 반환합니다.
import random
#1.5와 5.5 사이의 무작위 부동소수점 값을 반환
print(random.uniform(1.5, 5.5))
위 코드는 1.5와 5.5 사이의 무작위 부동소수점 값을 반환합니다.
2) gauss(μ, σ)
‘gauss(μ, σ)’ 함수는 평균 μ와 표준편차 σ를 가지는 가우시안 분포에서 무작위 샘플을 반환합니다.
import random
# 평균이 0이고 표준편차가 1인 가우시안 분포에서 값을 하나 무작위로 반환
print(random.gauss(0, 1))
위 코드는 평균이 0이고 표준편차가 1인 가우시안 분포에서 값을 하나 무작위로 반환합니다.
3) choices(population, weights=None, cum_weights=None, k=1)
`choices()` 함수는 모집단에서 k개의 원소를 무작위로 선택하여 반환합니다. weights나 cum_weights 인자를 사용하면 각 원소가 선택될 확률을 지정할 수 있습니다.
import random
# 2개의 원소를 무작위로 선택하여 반환
my_list = ['apple', 'banana', 'cherry']
print(random.choices(my_list, k=2))
위 코드는 my_list에서 2개의 원소를 무작위로 선택하여 반환합니다.
random 모듈에는 위에서 소개한 함수들 외에도 많은 고급 기능들이 있습니다.
해당 페이지에서는 모두 다 설명을 드릴 수 없으니 random 파이썬 공식 홈페이지를 참조 하시면 도움이 되실 겁니다.
이러한 함수들은 통계, 데이터 분석, 시뮬레이션 등 다양한 분야에서 활용될 수 있습니다.
random() vs randrange() 비교 분석
파이썬의 random 모듈은 다양한 무작위 숫자를 출력하는데 기능을 가지고 있습니다.
사실 개인적으로 헷갈리지만 많은 분들이 헷갈리는 ‘random()’ 함수와 ‘randrange()’ 함수에 대해서 조금 비교 분석을 해보도록 하겠습니다.
위에서 설명 드린 대로 ‘random()’ 함수는 0.0 이상 1.0 미만의 부동소수점 숫자를 반환하며 반환 값은 0 이상 1 미만의 범위 내에서 무작위로 결정되는 구조입니다.
반면 ‘randrange()’ 함수는 주어진 범위 내의 임의의 정수를 반환합니다.
시작, 끝, 스텝값을 인자로 지정할 수 있으며, 이는 Python의 ‘range()’ 함수와 유사한 방식으로 활용이 가능합니다.
#random() 함수 예제코드
import random
print(random.random())
# randrange() 함수
import random
print(random.randrange(10)) # 0 이상 10 미만의 정수
print(random.randrange(1, 10, 2)) # 1 이상 10 미만의 홀수
– 예제 코드 분석
위 코드에서는random 함수를 이용하면 0.0과 1.0 사이의 무작위 부동소수점 값을 출력합니다.
그리고 randrange 함수를 이용하면 정수를 출력하는데 첫 번째 코드는 0부터 9까지의 임의의 정수를 출력하는 코드이고, 두 번째 예제 코드는 1부터 9까지의 홀수 중 하나를 출력하는 코드입니다.
위에 코드를 보시면 아시겠지만 ‘random()’은 부동소수점 숫자를, ‘randrange()’는 정수를 반환한다는 것이 가장 큰 차이점입니다.
따라서, 특정 범위 내에서 정수 값을 무작위로 얻고 싶다면 ‘randrange()’를, 0과 1 사이의 부동소수점 값을 원한다면 ‘random()’을 사용하면 됩니다.
또한, ‘randrange()’는 ‘range()’ 함수와 유사한 방식으로 작동하기 때문에, 시작값, 끝값, 스텝값 등을 잘 활용을 하시면 더 원하는 결과를 출력하는데 도움이 되실 겁니다.
shuffle과 choice 활용 방법
: random 모듈에는 리스트나 튜플과 같은 시퀀스 자료형을 무작위로 조작하는 함수들도 포함되어 있습니다.
그 중 ‘shuffle()’과 ‘choice()’ 함수는 매우 유용하게 활용이 가능합니다.
- shuffle() 함수 : 주어진 리스트나 시퀀스를 무작위로 섞는 함수
- choice() 함수 : 주어진 시퀀스에서 하나의 항목을 무작위로 선택하여 반환하는 함수
1) shuffle() 함수
‘shuffle()’ 함수는 시퀀스를 받아 그 순서를 무작위로 변경합니다. 이 함수는 주로 리스트 내의 항목 순서를 무작위로 변경할 때 사용됩니다.
import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list) print(my_list)
위의 코드는 ‘my_list’의 원소들의 순서를 무작위로 변경한 후, 그 결과를 출력합니다.
여러 번 실행하면 다양한 결과를 확인할 수 있습니다.
2) choice() 함수
‘choice()’ 함수는 주어진 시퀀스(예: 리스트, 튜플)에서 무작위로 한 항목을 선택하여 반환합니다.
만약 무작위로 한 원소를 선택하고 싶을 때 이 함수를 활용하면 됩니다.
import random
my_list = ["apple", "banana", "cherry", "date"]
selected_fruit = random.choice(my_list) print(selected_fruit)
위의 코드는 ‘my_list’에서 무작위로 하나의 과일 이름을 선택하여 출력합니다.
이 코드를 여러 번 실행하면 다양한 과일 이름을 결과로 확인할 수 있습니다.
요약하자면, ‘shuffle()’은 주어진 시퀀스의 순서를 변경하고, ‘choice()’는 주어진 시퀀스에서 무작위로 한 항목을 선택하여 출력합니다.
두 함수 모두 random 모듈의 기능 중에서도 특히 유용하게 사용하실 수 있습니다.
결론
이상입니다. 지금까지 복잡한 알고리즘 없이도 간편하게 무작위 값을 출력할 수 있는 파이썬 random 모듈 활용 방법 및 관련 예제 코드 대해서 포스팅을 작성하였습니다.
무작위 숫자를 출력하는데 정말 유용하며 해당 코드를 위해서 여러가지 프로그램 구현이 가능합니다.
제 포스팅을 통해서 파이썬 공부하시는데 도움이 되셨으면 합니다. 감사합니다.









