파이썬의 random 모듈은 난수를 생성하고, 시퀀스를 섞고, 기타 무작위 작업을 수행하는 데 유용한 도구입니다. 게임 개발, 데이터 시뮬레이션 또는 실험을 하면서 random 모듈을 이해하면 프로그래밍 실력을 더욱 향상시킬 수 있습니다.
random 모듈 임포트하기
random 모듈을 사용하려면 먼저 임포트해야 합니다:
import random
난수 생성하기
1. 0과 1 사이의 난수 생성
random() 함수는 0(포함)에서 1(제외) 사이의 난수를 생성합니다
print(random.random())
# 예시 출력: 0.754321
2. 특정 범위 내의 실수 난수 생성
uniform(a, b)를 사용하여 특정 범위 내의 실수 난수를 생성할 수 있습니다
print(random.uniform(1.5, 5.5))
# 예시 출력: 3.873
3. 정수 난수 생성
randint(a, b) 함수는 a와 b(포함) 사이의 정수를 반환합니다
print(random.randint(1, 10))
# 예시 출력: 7
4. 범위 내 정수 난수 생성(단계 포함)
randrange(start, stop[, step])를 사용하여 범위 내에서 단계 값을 포함한 정수를 생성할 수 있습니다
print(random.randrange(0, 20, 5))
# 예시 출력: 10
시퀀스에서 랜덤하게 선택하기
1. 단일 랜덤 선택
choice(seq) 함수는 시퀀스에서 단일 요소를 랜덤하게 선택합니다:
colors = ['red', 'blue', 'green', 'yellow']
print(random.choice(colors))
# 예시 출력: 'blue'
2. 여러 개 랜덤 선택
choices(seq, k=n)를 사용하여 시퀀스에서 n개의 요소를 중복 허용하여 선택할 수 있습니다:
print(random.choices(colors, k=3))
# 예시 출력: ['green', 'red', 'red']
3. 중복 없이 랜덤 샘플링
sample(seq, k) 함수는 시퀀스에서 k개의 고유 요소를 선택합니다
print(random.sample(colors, 2))
# 예시 출력: ['yellow', 'green']
시퀀스 섞기
shuffle(seq) 함수는 시퀀스를 제자리에서 섞습니다
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)
# 예시 출력: [4, 1, 5, 3, 2]
난수 시드 설정하기
seed() 함수는 난수 생성기를 초기화하여 동일한 결과를 재현 가능하게 만듭니다
random.seed(42)
print(random.random())
# 예시 출력: 0.6394267984578837
같은 시드 값을 사용하면 난수 시퀀스가 실행할 때마다 동일하게 유지되므로 테스트 및 디버깅에 유용합니다.
random 모듈의 활용 사례
- 게임 개발: 랜덤 이벤트, 주사위 굴리기, 덱 섞기 등.
- 시뮬레이션: 고객 도착이나 날씨 패턴과 같은 현실 세계의 랜덤성 모델링.
- 데이터 과학: 데이터셋을 랜덤으로 분할하거나 부트스트랩 샘플 생성.
- 창의적 응용: 랜덤 패턴, 이름, 스토리 요소 생성.
'프로그래밍 > python' 카테고리의 다른 글
[파이썬] __init__.py 파일 이해하기: 패키지 초기화의 핵심 (0) | 2024.12.30 |
---|---|
[파이썬] 파이썬의 __init__ 이해하기: 생성자 메서드 (1) | 2024.12.30 |
[OpenCV] OpenCV를 활용한 퍼스펙티브 변환 (Perspective Transformation) (0) | 2024.09.05 |
[Python] json 파일 읽기 (0) | 2024.06.03 |
[PySide6] styleSheet 사용방법 - QLabel (1) (0) | 2024.06.03 |
댓글