70. 파이썬 random 표준 라이브러리

  • 네이버 블로그 공유하기
  • 카카오톡 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기

지난 포스팅에서 파이썬 표준 라이브러리 중 math.gcd 와 math.lcm 에 대해 알아 보았습니다.
이번 포스팅에서는 파이썬 표준 라이브러리 중 random 에 대해 공부 해 보도록 하겠습니다.

파이썬 표준 라이브러리

random

random.random

random 은 난수 즉 규칙이 없는 임의의 수를 발생 시키는 모듈입니다.
random 과 randint 에 대해 공부 해 보겠습니다.

먼저 0.0 에서 1.0 사이의 실수 중에서 임의의 수를 발생시키는 예를 보겠습니다.

Python
>>> import random
>>> random.random()
0.34368708037705975
>>>

위 처럼 random.random() 함수를 실행하면 기본적으로 0.0 에서 1.0 사이에서 난수를 발생하게 됩니다.

random.randint

아래 코드는 randint 를 사용해서 1 부터 10 사이의 정수 중에서 임의의 수를 발생하게 됩니다.

Python
>>> random.randint(1, 10)
6
>>>

아래 처럼 1 부터 100 사이의 정수 중 임의의 수를 발생을 시켜 보았습니다.

Python
>>> random.randint(1, 100)
31
>>>

다음 코드를 실행을 해 보겠습니다.

Python
# random_pop1.py
import random
def random_pop(data):
    number = random.randint(0, len(data) - 1)
    return data.pop(number)

if __name__ == "__main__":
    data = [1, 2, 3, 4, 5]
    while data:
        print(random_pop(data))


위 코드를 실행을 해보면 아래처럼 결과가 나옵니다.

Python
(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python random_pop1.py
2
4
1
5
3

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>

위에서 작성한 random_pop 함수는 리스트의 요소 중에서 무작위로 하나를 선택하여 꺼낸 후 그 꺼낸 값을 리턴을 하게 됩니다.
꺼낸 값은 pop 메서드에 의해서 없어지게 됩니다.

random.choice

random_pop 함수는 random 모듈의 choice 함수를 사용하면 좀 더 직관적으로 만들어 볼 수도 있습니다.

Python
# random_pop2.py
import random
def random_pop(data):
    number = random.choice(data)
    data.remove(number)
    return number

if __name__ == "__main__":
    data = [1, 2, 3, 4, 5]
    while data:
        print(random_pop(data))

위 코드를 실행하면 아래의 결과가 나옵니다.

Python
(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python random_pop2.py
1
3
5
4
2

(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>

random.choice 함수는 입력으로 받은 리스트에서 무작위로 하나를 선택해서 리턴 하게 됩니다.

random.sample

리스트 요소를 랜덤하게 섞고 싶다면 random.sample 함수를 사용을 하면 됩니다.

Python
>>> a = [1, 2, 3, 4, 5]
>>> random.sample(a, len(a))
[5, 2, 4, 3, 1]
>>>

random.sample 함수에서 2 번째 인수인 len(a) 는 무작위로 추출할 원소의 갯수를 의미합니다.
만일에 random.sample(a, 3) 처럼 사용을 한다면 a 리스트에서 무작위로 3개를 추출해서 리턴을 하게 됩니다.

Python
>>> random.sample(a, 3)
[2, 1, 3]
>>>
  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
70. 파이썬 표준 라이브러리 random

Leave a Comment