파이썬 기초 4 - 함수

매생이·2021년 10월 18일
0

파이썬 공부

목록 보기
6/8

파이썬에서는 함수를 def 라는 방식을로 직접 정의해서 사용합니다.

def my_function():
	print("자체 정의 함수입니다")

my_function()

실행 결과 :
자체 정의 함수입니다

이러한 방식으로 코드로 직접 작성한 어떠한 과정을 함수로 만들어서 사용하면, 메인 동작 부분에서 가독성이 좋아지고, 여러번 반복하기도 좋습니다.

긴 과정을 함수화 시키려면 매개변수가 많이 필요할수도 있는데, 그럴 때 필요한 방법이 keyword argument입니다.

def my_function(name,age,height,weight,job):
	print(name,age,height,weight,job)

my_function("youngmin","25","180","80","student")

실행 결과 :
youngmin 25 180 80 student

위의 예시와 같이 매개변수가 많이 필요한 경우에 **kwargs를 대신해서 사용할 수 있습니다.

def my_function(**kwargs):
    name = kwargs.get("name","youngmin")
    age = kwargs.get("age","25")
    height = kwargs.get("height","180")
    weight = kwargs.get("weight","80")
    job = kwargs.get("job","student")
  
    print(name,age,height,weight,job)

my_function()

실행 결과 :
youngmin 25 180 80 student

위의 예시처럼 필요했던 인자들을 전부 기본 값을 설정해주면 인자를 넘겨받지 않아도 설정 되어있는 기본 값으로 함수를 실행합니다.

기본 값을 설정해두었다고 하더라도, 매개 인자의 이름을 명시하며 새로운 값을 넘겨주면 기본 값이 아닌 내가 넘겨주는 값이 함수에 사용되어 실행됩니다.

def my_function(**kwargs):
    name = kwargs.get("name","youngmin")
    age = kwargs.get("age","25")
    height = kwargs.get("height","180")
    weight = kwargs.get("weight","80")
    job = kwargs.get("job","student")
  
    print(name,age,height,weight,job)

my_function(name = "Jiyeon",height = 160)

실행 결과 :
Jiyeon 25 160 80 student

이렇게 모든 인자중 몇개만 내가 지정하고싶은 값으로 넘겨주면 나머지 인자는 기본값으로 함수가 실행되게 됩니다.

내가 만든 함수 import 해서 사용하기

코딩을 하다보면 같은 과정을 굉장히 많이 사용해야될 수도 있습니다.
예를들어 시각화 공부를 하는 사람은 매일 import matplotlib.pyplot as plt,
import seaborn as sns 등등 라이브러리들을 import 하는데만 하루에 몇십줄을 타이핑할수도 있습니다.

이런 경우 스스로 함수로 만들고 모듈을 만들어 새 코드를 짤 때마다 import 해와서 사용할 수 있습니다.

%%writefile ./set_matplotlib_hangul.py

import platform
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc

path = "c:/Windows/Fonts/malgun.ttf"

if platform.system() == "Windows":
    print("Hangul OK in your windows")
    font_name = font_manager.FontProperties(fname=path).get_name()
    rc("font",family=font_name)
else:
    print("buy windows")
plt.rcParams["axes.unicode_minus"]=False

위 코드는 시각화를 하기 위해 matplot을 사용할 때 한글이 깨지는 경우를 막기 위해 미리 실행하는 코드입니다.

첫번째 줄을 보면 %%writefile ./set_matplotlib_hangul.py 라는 부분이 나오는데 이 코드가 주피터 노트북이나 코랩의 셀의 맨 윗줄, 아니면 vscode나 pycharm의 py파일의 첫번째 줄에 있다면 현재 경로에 set_matplotlib_hangul.py 라는 파일로 생성하겠다 라는 코드입니다.

이렇게 작성한 코드를 모듈화하고, import set_matplotlib_hangul 이라는 구문을 실행하면 모듈이 import되어 한글 깨짐 현상을 해결하게 됩니다.

물론 직접 만든 함수 모듈을 import 하려면 해당 폴더에 파일이 존재해야하지만, 깃헙에 올려두고 해당 repositary를 명령어로 다운로드 해와서 사용하는 방법도 존재합니다.
하지만 해당 방법에 관한 이야기는 나중에 github 사용법을 다루는 게시글이나 colab을 사용한 머신러닝 관련 포스팅에서 다루겠습니다.

0개의 댓글