본문 바로가기
  • You find inspiration to create your own path !
업무 자동화/python & CAD

Python 학습] 함수

by ToolBOX01 2025. 8. 25.
반응형

파이썬에서 함수는 특정 작업을 수행하는 코드 블록으로, 필요할 때마다 재사용할 수 있도록 정의된 것입니다. 함수는 마치 요리 레시피와 같습니다. 예를 들어, 김밥을 만드는 방법을 단계별로 적어놓은 레시피가 있다면, 그 레시피를 따라 김밥을 만들 수 있습니다. 함수도 이와 비슷하게, 특정 작업(예: 계산, 출력 등)을 수행하는 단계를 코드로 정리한 것입니다.

 

  • 이름: 함수는 이름을 가져서 호출할 때 사용합니다.
  • 입력: 함수에 데이터를 줄 수 있습니다(이를 매개변수라고 함).
  • 출력: 함수는 작업을 마친 후 결과를 돌려줄 수 있습니다(이를 반환값이라고 함).
  • 재사용성: 한 번 정의해놓으면 언제든지 호출해서 사용할 수 있습니다.

 

왜 함수를 사용할까

 

  • 코드 재사용: 같은 작업을 반복할 때마다 코드를 새로 쓰지 않아도 됩니다.
  • 가독성 향상: 코드를 기능별로 나누면 이해하기 쉽습니다.
  • 유지보수 용이: 코드 일부를 수정할 때 함수만 수정하면 됩니다.

파이썬에서 함수의 기본 구조

파이썬에서 함수는 def 키워드를 사용해 정의합니다. 아래는 기본 구조입니다:

def 함수이름(매개변수):
    # 수행할 코드
    return 결과

 

  • def: 함수를 정의할 때 사용하는 키워드.
  • 함수이름: 함수를 부를 때 사용할 이름(예: make_kimbap).
  • 매개변수: 함수에 전달되는 입력값(없을 수도 있음).
  • return: 함수가 결과를 돌려줄 때 사용(없을 수도 있음)

 

 

 

예시 : 인사말 출력 함수

def say_hello(name):
    print(f"안녕하세요, {name}님!")

# 함수 호출
say_hello("지민")  # 출력: 안녕하세요, 지민님!
say_hello("민수")  # 출력: 안녕하세요, 민수님!

코드 설명:

  • 함수 이름: say_hello
  • 매개변수: name (학생 이름을 입력받음)
  • 역할: 입력받은 이름을 넣어 인사말을 출력
  • return이 없으므로 이 함수는 값을 돌려주지 않고 출력만 함

 

예시 :두 수를 더하는 함수

def add_numbers(a, b):
    result = a + b
    return result

# 함수 호출
sum = add_numbers(3, 5)
print(sum)  # 출력: 8

코드 설명:

 

  • 함수 이름: add_numbers
  • 매개변수: a, b (더할 두 숫자)
  • 역할: 두 수를 더한 결과를 반환
  • return으로 결과를 돌려줘서 변수(sum)에 저장 가능

 

▣ 함수 사용시 자주 헷갈리는 점

 

  • 들여쓰기: 함수 안의 코드는 반드시 들여쓰기를 해야 합니다. 들여쓰기가 잘못되면 오류가 나거나 함수가 제대로 작동하지 않습니다.
  • return vs print: print는 화면에 출력만 하고, return은 값을 돌려줘서 다른 곳에서 사용할 수 있게 합니다.
  • 매개변수 없음: 함수는 매개변수 없이도 만들 수 있습니다. 예: def say_hi(): print("안녕!")

파이썬에서는 다른 .py 파일에 정의된 함수를 모듈로 가져와서 사용할 수 있습니다. 이를 위해 import 문을 사용합니다.
다른 .py 파일의 함수를 사용하는 것은 파이썬에서 코드를 체계적으로 관리하고 재사용성을 높이는 중요한 방법입니다.

다른 .py 파일의 함수 사용 방법

파이썬에서 다른 파일의 함수를 사용하려면:

  1. 함수가 정의된 .py 파일을 모듈로 가져옵니다.
  2. import 문을 사용해 해당 파일을 불러오고, 점(.) 연산자를 사용해 함수를 호출합니다.
  3. 파일이 같은 폴더에 있어야 쉽게 불러올 수 있습니다.

예시 

두 개의 .py 파일을 사용한 예제입니다. 하나는 함수를 정의한 파일이고, 다른 하나는 그 함수를 호출하는 파일입니다.

파일 1: my_functions.py : 이 파일에 함수를 정의합니다.

# my_functions.py

def say_hello(name):
    return f"안녕하세요, {name}님!"

def add_numbers(a, b):
    return a + b

 

파일 2: main.py : 이 파일에서 my_functions.py에 있는 함수를 불러와 사용합니다.

# main.py

# my_functions.py 파일에서 함수를 가져옴
import my_functions

# 함수 호출
greeting = my_functions.say_hello("지민")
print(greeting)  # 출력: 안녕하세요, 지민님!

result = my_functions.add_numbers(3, 5)
print(result)  # 출력: 8

main.py 실행 방법

  1. 파일 저장:
    • my_functions.pymain.py같은 폴더에 저장합니다.
  2. 실행:
    • main.py를 실행하면 my_functions.py에 정의된 함수를 사용할 수 있습니다.
    • 예: 터미널에서 python main.py 실행

특정 함수만 가져오기

만약 모듈 전체가 아니라 특정 함수만 가져오고 싶다면 from ... import ... 구문을 사용합니다.

수정된 main.py

# main.py

# 특정 함수만 가져오기
from my_functions import say_hello, add_numbers

# 함수 호출
greeting = say_hello("민수")  # 모듈 이름 없이 바로 사용 가능
print(greeting)  # 출력: 안녕하세요, 민수님!

result = add_numbers(4, 6)
print(result)  # 출력: 10

다른 파일의 함수를 사용하는 것은 마치 도서관에서 책을 빌려오는 것과 같습니. my_functions.py는 도서관이고, import는 책(함수)을 빌려오는 과정입니다.


모듈 이름 별칭 사용

모듈 이름이 길거나 자주 사용할 때 별칭을 사용할 수 있습니다.

import my_functions as mf

print(mf.say_hello("영희"))  # 출력: 안녕하세요, 영희님!

오류 가능성: 만약 my_functions.py가 같은 폴더에 없거나 이름이 잘못되었다면 ModuleNotFoundError가 발생합니다.  파일 경로와 이름을 확인 하십시요.

유튜브 동영상

 

by korealionkk@gmail.com


반응형