Chapter 11. '모듈의 이해' 그리고 '수학 모듈' 이용하기

Push·2021년 1월 17일
0

Python

목록 보기
12/13

circle.py 파일 만들기

먼저, circle.py 파일에 원의 둘레와 넓이를 구하는 함수들을 작성해야 됩니다.

def ar_circle(rad):
    return rad * rad * 3.14
def ci_circle(rad):
    return rad * 2 * 3.14

이렇게 circle.py를 작성했으면 저 파일을 가져다 쓸 파일을 만들어야겠죠??

import ~

import circle

def main():
    r = float(input("반지름 입력: "))
    ar = circle.ar_circle(r)
    print("넓이: ", ar) 
    ci = circle.ci_circle(r)
    print("둘레: ", ci)

main()

여기서 import가 쓰였는데요! 이게 circle.py 모듈을 가져다 쓰겠다는 선언을 해주는 친구입니다!
여기서 주의할 점은 import 뒤엔 파이썬 파일의 이름! 즉 circle.py가 아닌 circle를 써야 됩니다~
또한 circle.py와 모듈을 가져다 쓸 파일 이 둘은 같은 위치에 존재해야 됩니다!


그럼 이렇게 결과가 나오게 됩니다!
하지만 circle.py 전체 말고 circle.py의 특정 함수만 가져다가 쓰고싶을 때도 있을 겁니다!
그럴땐

from ~ import ~

from circle import ar_circle
from circle import ci_circle

def main():
    r = float(input("반지름 입력: "))
    ar = ar_circle(r)
    print("넓이: ", ar) 
    ci = ci_circle(r)
    print("둘레: ", ci)

main()


그럴 땐 from ~ import를 쓰면 됩니당
from 다음엔 .py 파일 이름! 그리고 import 뒤엔 그 파일에서 가져다 쓸 함수 이름을 쓰면 됩니당

하지만 저렇게 같은 파일에서 함수를 여러개 가져다 쓸 때마다 from을 하긴 귀찮으니

from circle import ar_circle, ci_circle
def main():
    r = float(input("반지름 입력: "))
    ar = ar_circle(r)
    print("넓이: ", ar) 
    ci = ci_circle(r)
    print("둘레: ", ci)

main()

이렇게 두개를 같은 줄에 쓰는 것도 가능합니당

이름이 겹치는 경우

앞의
circle.py에선

def ar_circle(rad):
    return rad * rad * 3.14
def ci_circle(rad):
    return rad * 2 * 3.14

이렇게 return 을 해주었는데요!

가져가 쓰는 파일에선

from circle import ar_circle, ci_circle

def ar_circle(rad):
    print("넓이: ", rad * rad * 3.14)
def ci_circle(rad):
    print("둘레: ", rad * 2 * 3.14)

def main():
    r=float(input("반지름 입력: "))
    ar_circle(r)
    ci_circle(r)

    sum=ar_circle(r)+ci_circle(r)
    print("넓이와 둘레의 합: ", sum)

main()

똑같은 이름의 함수들이 return 대신 print를 해주도록 작성했습니다!
이번에 main()에선 계산한 넓이와 둘레의 합을 출력해 주는 sum 도 만들었는데요!
여기서 sum은 circle.py의 모듈에서 가져다 쓴 ar_circle(), ci_circle()함수를 이용하여 합을 구하려고 하였지만 이 코드는 오류가 뜨게 됩니다!
왜냐하면 이름이 중복되어 두 함수가 구분이 되지 않기 때문입니다!

from ~ import ~ as ~

이렇게 함수의 이름을 임시로 바꿔주면 됩니다!

from circle import ar_circle as ar
from circle import ci_circle as ci

def ar_circle(rad):
    print("넓이: ", rad * rad * 3.14)
def ci_circle(rad):
    print("둘레: ", rad * 2 * 3.14)

def main():
    r=float(input("반지름 입력: "))
    ar_circle(r)
    ci_circle(r)

    sum=ar(r)+ci(r)
    print("넓이와 둘레의 합: ", sum)

main()

이렇게 하면 circle.py 모듈 안의 ar_circle()함수는 ar로, ci_circle()함수는 ci로 이름을 바꾸었고,
sum=ar(r)+ci(r) 로 바꾸어 주면

정상적으로 실행이 됩니다!

import ~ as ~

함수만 이름을 바꿔서 쓸 수 있는게 아니라 모듈의 이름도 바꿔서 쓸 수 있습니다!

import circle as cc
def ar_circle(rad):
    print("넓이: ", rad * rad * 3.14)
def ci_circle(rad):
    print("둘레: ", rad * 2 * 3.14)

def main():
    r=float(input("반지름 입력: "))
    ar_circle(r)
    ci_circle(r)

    sum=cc.ar_circle(r)+cc.ci_circle(r)
    print("넓이와 둘레의 합: ", sum)

main()

이렇게여!

수학 관련 모듈

앞에선 직접 import를 해서 모듈을 가져와서 썼는데요!
파이썬에서는 파이썬을 설치하기만 하면 기본적으로 제공해주는 빌트인(Built-in) 함수들이 있습니다!
예를들어 위에서도 썼듯이 print()함수도 빌트인 함수입니다!

import math
math.pi		# 파이
math.e		# e
math.sin(x)	# sin(x)
math.cos(x)	# cos(x)
math.tan(x)	# tan(x)
math.asin(x)	# arsin(x)
math.acos(x)	# arcos(x)
math.atan(x)	# artan(x)
math.log(x)	# ln(x)
math.log10(x)	# log10(x)
math.log2(x)	# log2(x)
math.exp(x)	# e^x
math.sqrt(x)	# √(x)
math.fabs(x)	# ∣x∣
math.degress(x)	# convert radians to degrees
math.radians(x)	# convert degrees to radians

그럼 이번 글은 여기서 마치도록 하겠습니다 :D

profile
🖥 나는 무너🐙 꿈을 꾸는 무너 🖥

0개의 댓글