1. random 모듈이란?
random 모듈은 파이썬 내장 모듈 중 하나로, 난수 생성 기능을 제공합니다. random 모듈은 임의의 숫자를 생성하기 위한 여러 가지 함수를 제공하며, 이를 활용하여 게임, 암호화, 시뮬레이션 등에 사용될 수 있습니다.
random 모듈은 별도의 설치 과정이 필요없습니다. 모듈을 사용하려면 아래와 같이 import를 하면 됩니다.
import random
2. random.random
random.random은 random 모듈에서 사용되는 함수 중 하나로, 0 이상 1 미만의 실수 값을 임의로 반환합니다. 코드에서는 random 함수를 사용하여 0 이상 1 미만의 임의의 실수 값을 생성하고, 이를 출력합니다.
import random
# 0 이상 1 미만의 임의의 실수 값 생성
value = random.random()
print("생성된 임의의 실수 값:", value)
3. random.randint
random.randint는 지정한 범위 안에서 임의의 정수 값을 반환합니다.
randint 함수는 아래와 같은 인자를 받습니다.
- a: 정수 범위의 시작 값을 나타내는 정수입니다.
- b: 정수 범위의 끝 값을 나타내는 정수입니다.
random.randint(a, b)
코드에서는 randint 함수를 사용하여 1 이상 10 이하의 임의의 정수 값을 생성하고, 이를 출력합니다.
import random
# 1 이상 10 이하의 임의의 정수 값 생성
value = random.randint(1, 10)
print("생성된 임의의 정수 값:", value)
4. random.choice
random.choice는 주어진 시퀀스에서 임의의 요소를 선택하는 데 사용됩니다.
choice 함수는 다음과 같은 인자를 받습니다.
- seq: 선택할 요소가 포함된 시퀀스입니다.
random.choice(seq)
코드에서는 choice 함수를 사용하여 주어진 시퀀스에서 임의의 요소를 선택하고, 이를 출력합니다.
import random
# 시퀀스에서 임의의 요소 선택
seq = ["apple", "banana", "cherry"]
value = random.choice(seq)
print("선택된 요소:", value)
5. random.shuffle
random.shuffle은 주어진 시퀀스의 요소를 임의의 순서로 섞는 데 사용됩니다.
shuffle 함수는 다음과 같은 인자를 받습니다.
- lst: 요소를 섞을 시퀀스입니다.
- random: 요소를 섞는 데 사용될 random 모듈의 함수입니다. 기본값은 None이며, 기본적으로 random 모듈의 함수를 사용합니다.
random.shuffle(lst, random=None)
코드에서는 shuffle 함수를 사용하여 주어진 시퀀스의 요소를 임의의 순서로 섞고, 이를 출력합니다.
import random
# 시퀀스 요소 섞기
seq = ["apple", "banana", "cherry"]
random.shuffle(seq)
print("섞인 요소:", seq)
6. random.sample
random.sample은 주어진 시퀀스에서 지정한 개수만큼 요소를 임의로 선택하는 데 사용됩니다.
sample 함수는 다음과 같은 인자를 받습니다.
- population: 선택할 요소가 포함된 시퀀스입니다.
- k: 선택할 요소의 개수입니다.
random.sample(population, k)
코드에서는 sample 함수를 사용하여 주어진 시퀀스에서 3개의 요소를 임의로 선택하고, 이를 출력합니다.
import random
# 시퀀스에서 요소 선택
seq = ["apple", "banana", "cherry", "orange", "kiwi"]
selected = random.sample(seq, 3)
print("선택된 요소:", selected)
7. random.randrange
random.randrange는 지정한 범위 안에서 임의의 정수 값을 반환합니다.
randrange 함수는 다음과 같은 인자를 받습니다.
- start: 정수 범위의 시작 값을 나타내는 정수입니다.
- stop: 정수 범위의 끝 값을 나타내는 정수입니다. 이 값은 포함되지 않습니다. 기본값은 None이며, 이 경우 start 값을 범위의 끝 값으로 사용합니다.
- step: 간격을 나타내는 정수입니다. 기본값은 1입니다.
random.randrange(start, stop=None, step=1)
코드에서는 randrange 함수를 사용하여 1 이상 10 미만의 임의의 정수 값을 생성하고, 이를 출력합니다. 또한, 0 이상 10 미만의 2의 배수인 임의의 정수 값을 생성하고, 이를 출력합니다.
import random
# 1 이상 10 미만의 임의의 정수 값 생성
value = random.randrange(1, 10)
print("생성된 임의의 정수 값:", value)
# 0 이상 10 미만의 2의 배수인 임의의 정수 값 생성
value = random.randrange(0, 10, 2)
print("생성된 임의의 정수 값:", value)
8. random.seed
random.seed는 난수 생성 시 사용되는 시드 값을 설정하는 데 사용됩니다. 시드 값을 설정하면, 같은 시드 값을 사용하는 경우 항상 같은 난수 시퀀스가 생성됩니다.
seed 함수는 다음과 같은 인자를 받습니다.
- a: 시드 값으로 사용할 해시 가능한 객체입니다. 기본값은 None이며, 이 경우 시스템 시간을 사용합니다.
- version: 시드 값 선택 방법을 지정하는데 사용됩니다. 기본값은 2입니다.
random.seed(a=None, version=2)
코드에서는 seed 함수를 사용하여 시드 값을 설정하고, 같은 시드 값을 사용하여 세 개의 난수 값을 생성하고, 이를 출력합니다.
import random
# 시드 값 설정
random.seed(1234)
# 같은 시드 값으로 난수 생성
print(random.random())
print(random.random())
print(random.random())