[Python 모듈] random : 난수 생성 기능을 제공하는 모듈

 

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())