Python/파이썬 입문

[파이썬 입문] 5. 모듈 – 01) 모듈 개요와 random 모듈

언휴 2024. 5. 3. 16:43

 

[파이썬 입문] 모듈 개요와 random 모듈

파이썬에서 모듈은 관련있는 것을 하나의 파이썬 소스 파일에 작성한 것입니다.

이렇게 정의한 모듈은 import 문법을 이용하여 다른 파이썬 소스에서 사용할 수 있습니다.

예를 들어 mylib.py 파일에 다음과 같은 내용이 있다고 가정할게요.

[In]
#mylib.py
def foo():
  print("foo")

만약 다른 곳에서 import 구문 없이 mylib에 정의한 foo 함수를 사용하려고 하면 NameError가 발생합니다.

[In]
foo()
[out]
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-c19b6d9633cf> in <module>()
----> 1 foo()

NameError: name 'foo' is not defined

다른 곳에서 mylib 모듈(mylib.py)에 정의한 것을 사용하기 위해서는 import mylib를 명시합니다.

그리고 mylib와 점(.)을 통해 정의한 것에 접근할 수 있어요.

[In]
import mylib
mylib.foo()
[out]
foo

만약 mylib와 점(.)을 생략하고 싶다면 from과 import를 함께 사용하세요.

from 모듈 import 사용할 이름

[In]
from mylib import foo
foo()
[out]
foo

import as로 모듈 이름의 별칭을 정할 수도 있습니다.

import 모듈 이름 as 별칭 이름

[In]
import mylib as m
m.foo()
[out]
foo

random 모듈

랜덤한 값을 발생하는 여러 함수 등을 정의한 모듈 이름이 random입니다.

따라서 import random을 명시하여 사용할 수 있어요.

[In]
import random

random 모듈에 함수 random을 호출하면 0에서 1사이의 랜덤한 실수를 반환합니다.

[In]
for _ in range(10):
  rv = random.random()
  print(f"{rv:.2f}",end=' ')
[out]
0.55 0.90 0.46 0.56 0.41 0.26 0.80 0.38 0.04 0.02 

원하는 범위 내에서 랜덤한 실수를 발생하기 원하면 uniform 함수를 사용하세요.

[In]
for _ in range(10):
  rv = random.uniform(-1,1)
  print(f"{rv:.2f}",end=' ')
[out]
0.04 0.02 -0.18 0.59 0.21 0.28 0.51 0.94 -0.41 -0.65 

특정 범위 내에서 랜덤한 정수를 발생하기 원하면 randint 함수를 사용하세요.

[In]
for _ in range(10):
  rv = random.randint(0,3)
  print(f"{rv}",end=' ')
[out]
3 2 0 3 3 0 3 2 0 1 

range처럼 시작, 끝 범위와 step을 지정하여 랜덤한 정수 값을 얻기 원하면 randrange 함수를 호출하세요.

[In]
for _ in range(10):
  rv = random.randrange(0,20,3)
  print(f"{rv}",end=' ')
[out]
9 6 12 18 12 9 3 6 0 9 

특정 목록 내에서 랜덤하게 고르고 싶다면 choice 함수를 사용하세요.

[In]
for _ in range(10):
  rv = random.choice([1,6,9,12])
  print(f"{rv}",end=' ')
[out]
12 6 6 1 9 1 9 9 12 12 

random 모듈은 이 외에도 다양한 것들을 제공합니다.