파이썬 랜덤 모듈
파이썬에서 랜덤한 수를 생성하거나 가져올 때 주로 사용하는 모듈은 random
모듈입니다. 이 모듈은 다양한 방법으로 난수를 생성할 수 있도록 여러 함수를 제공합니다.
랜덤모듈과 관련된 주요 함수 소개
random()
- 0 이상 1 미만의 실수(float) 난수를 반환합니다.
- 예:
import random print(random.random()) # 0.0 <= x < 1.0
randint(a, b)
a
이상b
이하의 정수를 반환합니다.- 예:
print(random.randint(1, 10)) # 1 <= x <= 10
uniform(a, b)
a
이상b
이하의 실수(float)를 반환합니다.- 예:
print(random.uniform(1.5, 3.5)) # 1.5 <= x <= 3.5
randrange(start, stop[, step])
start
이상stop
미만의 정수 중에서step
간격으로 난수를 반환합니다.- 예:
print(random.randrange(0, 10, 2)) # 0, 2, 4, 6, 8 중 하나
choice(sequence)
- 시퀀스(리스트, 문자열 등)에서 무작위로 하나의 요소를 반환합니다.
- 예:
fruits = ['apple', 'banana', 'cherry'] print(random.choice(fruits)) # 리스트에서 랜덤 선택
choices(population, weights=None, k=1)
- 리스트에서 가중치를 고려해 여러 요소를 선택합니다.
- 예:
items = ['gold', 'silver', 'bronze'] print(random.choices(items, weights=[5, 3, 1], k=2))
shuffle(sequence)
- 리스트의 요소를 무작위로 섞습니다.
- 예:
numbers = [1, 2, 3, 4, 5] random.shuffle(numbers) print(numbers) # 섞인 리스트 출력
sample(population, k)
- 중복 없이 리스트에서
k
개의 요소를 무작위로 선택합니다. - 예:
numbers = [1, 2, 3, 4, 5] print(random.sample(numbers, 3)) # 리스트에서 3개 요소 선택
- 중복 없이 리스트에서
예제 코드
import random
# 1. 0 이상 1 미만의 실수 생성
print("random():", random.random())
# 2. 1 이상 10 이하의 정수 생성
print("randint(1, 10):", random.randint(1, 10))
# 3. 5.5 이상 9.5 이하의 실수 생성
print("uniform(5.5, 9.5):", random.uniform(5.5, 9.5))
# 4. 0부터 10 미만의 짝수 생성
print("randrange(0, 10, 2):", random.randrange(0, 10, 2))
# 5. 리스트에서 랜덤 요소 선택
colors = ['red', 'green', 'blue']
print("choice(colors):", random.choice(colors))
# 6. 리스트에서 가중치 기반 선택
print("choices(colors, weights=[2, 1, 1], k=2):", random.choices(colors, weights=[2, 1, 1], k=2))
# 7. 리스트 섞기
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print("shuffle(numbers):", numbers)
# 8. 중복 없이 3개 요소 선택
print("sample(numbers, 3):", random.sample(numbers, 3))
참고
더 높은 보안 수준의 난수가 필요한 경우 secrets
모듈을 사용할 수 있습니다. 이 모듈은 암호학적으로 안전한 난수 생성에 적합합니다.
또한, 난수를 생성할 때 특정 규칙을 따르고 싶다면 numpy
라이브러리의 난수 생성 기능도 사용할 수 있습니다.
'정보통신기술' 카테고리의 다른 글
IPv4와 IPv6의 비교 및 IPv6의 주소체계와 특장점 (0) | 2024.12.07 |
---|---|
Google Workspace: 소개와 효과적인 학습 방법 (1) | 2024.12.06 |
광섬유 도파 원리와 광학적 파라메타 (0) | 2024.12.04 |
광케이블의 종류와 손실에 관하여 (2) | 2024.12.02 |
VLAN 프래임 구조 및 특징, VLAN 사용시 장점 (0) | 2024.11.30 |