지난 포스팅에서 파이썬 표준 라이브러리 중 math.gcd 와 math.lcm 에 대해 알아 보았습니다.
이번 포스팅에서는 파이썬 표준 라이브러리 중 random 에 대해 공부 해 보도록 하겠습니다.
파이썬 표준 라이브러리
random
random.random
random 은 난수 즉 규칙이 없는 임의의 수를 발생 시키는 모듈입니다.
random 과 randint 에 대해 공부 해 보겠습니다.
먼저 0.0 에서 1.0 사이의 실수 중에서 임의의 수를 발생시키는 예를 보겠습니다.
>>> import random
>>> random.random()
0.34368708037705975
>>>
위 처럼 random.random() 함수를 실행하면 기본적으로 0.0 에서 1.0 사이에서 난수를 발생하게 됩니다.
random.randint
아래 코드는 randint 를 사용해서 1 부터 10 사이의 정수 중에서 임의의 수를 발생하게 됩니다.
>>> random.randint(1, 10)
6
>>>
아래 처럼 1 부터 100 사이의 정수 중 임의의 수를 발생을 시켜 보았습니다.
>>> random.randint(1, 100)
31
>>>
다음 코드를 실행을 해 보겠습니다.
# 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))
위 코드를 실행을 해보면 아래처럼 결과가 나옵니다.
(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 함수를 사용하면 좀 더 직관적으로 만들어 볼 수도 있습니다.
# 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))
위 코드를 실행하면 아래의 결과가 나옵니다.
(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 함수를 사용을 하면 됩니다.
>>> 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개를 추출해서 리턴을 하게 됩니다.
>>> random.sample(a, 3)
[2, 1, 3]
>>>
- 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
