[파이썬 기초 문법] 11장. ‘모듈의 이해’ 그리고 ‘수학 모듈’ 이용하기
20 Jun 2019
Reading time ~2 minutes
이 포스트는 윤성우님의 저서 열혈 파이썬 기초편을 기반으로 작성한 글입니다.
윤성우 열혈 파이썬 기초편
11장. ‘모듈의 이해’ 그리고 ‘수학 모듈’ 이용하기
1.모듈을 만들어 봅시다.
PI = 3.14 # 원주율
def ar_circle(rad): # 원의 넓이를 계산해서 반환하는 함수
return rad * rad * PI
def ci_circle(rad): # 원의 둘레를 계산해서 반환하는 함수
return rad * 2 * PI
2.모듈을 가져다 쓰는 방법1
# circle_test1.py
import circle # circle.py 모듈을 가져다 쓰겠다는 선언!
def main():
r = float(input("반지름 입력: "))
ar = circle.ar_circle(r) # circle.py의 ar_circle 함수 호출
print("넓이:", ar)
ci = circle.ci_circle(r) # circle.py의 ci_circle 함수 호출
print("둘레:", ci)
main()
'''
반지름 입력: 5.5
넓이: 94.985
둘레: 34.54
'''
# circle_test2.py
from circle import ar_circle
from circle import ci_circle
def main():
r = float(input("반지름 입력: "))
ar = ar_circle(r) # circle.py의 ar_circle 함수 호출
print("넓이:", ar)
ci = ci_circle(r) # circle.py의 ci_circle 함수 호출
print("둘레:", ci)
main()
'''
반지름 입력: 5.5
넓이: 94.985
둘레: 34.54
'''
from circle import ar_circle
from circle import ci_circle
from circle import ar_circle, ci_circle
3.모듈을 가져다 쓰는 방법2
# circle.py
PI = 3.14 # 원주율
def ar_circle(rad): # 원의 넓이를 계산해서 반환하는 함수
return rad * rad * PI
def ci_circle(rad): # 원의 둘레를 계산해서 반환하는 함수
return rad * 2 * PI
# circle_simple2.py
from circle import ci_circle
def ci_circle(rad):
print("둘레: ", rad * 2 * 3.14)
def main():
r = float(input("반지름 입력: "))
ci_circle(r) # ? ? ?
ci_circle(r) # ? ? ?
. . .
main()
위와 같이 모듈에서 특정 함수만 따로 import할 수 있다.
# circle_simple2.py
from circle import ci_circle as cc
def ci_circle(rad):
print("둘레: ", rad * 2 * 3.14)
def main():
r = float(input("반지름 입력: "))
ci_circle(r) # circle_simple2.py
cc(r) # circle.py
. . .
main()
위와 같이 함수이름이 겹칠 경우 as를 사용해서 이름충돌을 방지할 수 있다.
4.as로 모듈의 이름 줄이기
# circle_test3.py
import circle as cc
def main():
r = float(input("반지름 입력: "))
ar = cc.ar_circle(r)
. . . .
5.빌트인 함수
import 선언 없이 그냥 언제든 호출 가능한 함수
빌트인 모듈
위치 신경 쓰지 않고 언제든 import 할 수 있는 모듈
>>> print
<built-in function print>
>>> input
<built-in function input>
>>> import math
>>> math.fabs(-10)
10.0
math.sin(x) sin x
math.cos(x) cos x
math.tan(x) tan x
math.asin(x) arcsin x
math.acos(x) arccos x
math.atan(x) arctan x
. . . .