[Python] 9강 - 함수

2025. 4. 17. 21:24·⚡Python

1. 함수의 이해

(1) 함수의 개념 

 - 특정 작업을 수행하는 명령문의 집합을 의미한다. ( 코드 블록에 이름을 붙여놓은 것 )

 - 필요할 때마다 해당 이름을 호출해서 반복적으로 사용할 수 있는 재사용 가능한 코드 집합을 의미한다.

 - 함수를 활용하면 코드의 가독성 및 유지보수가 좋아짐

 

(2) 함수의 종류

[1] 내장 함수

 - 파이썬의 내장 함수로는 대표적으로 print() , input() , format() , int() 등 다양한 함수가 내장이 되어있음.

[2] 사용자 정의 함수

def add(a, b):
  print(a + b) # a + b 결과값 출력

add(1, 2) # 함수 호출

 - 사용자 정의 함수는 직접 함수를 만들어서 명령문 로직을 만들어 내는 것이다.

 - 해당 함수를 호출 하면 해당 함수의 코드블록이 실행이 된다.

[3] 반환값이 없는 함수

def add(a, b):
  print(a + b) # a + b 결과값 출력

add(1, 2) # 함수 호출

 - return 이 없는 경우 반환값이 없는 함수이다.

[4] 반환값이 있는 함수

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

sum = add(1, 2) # 반환값을 받아 변수에 할당
print(sum) # 변수값 출력

 - return 을 통해 함수가 끝날 때 반환값을 전달 할 수 있다. 전달 받은 반환값은 함수 호출 부분에 다시 돌아오게 된다.

 - 내장함수로는 format() 함수 input() 함수 등이 있다.

 

(3) 매개변수

 - 함수에 값을 전달해주는 변수를 "매개변수"라고 한다.

def add(a, b): # 매개변수
  print(a + b)

add(1, 2) # 함수 호출 시 넣는 이 변수를 매개변수라함.

 - 함수에 a, b 로 어떠한 값을 받는 과정이 결국 변수 선언과 초기화와 비슷함. 즉, 변수로 볼 수 있음.

 


2. 변수의 스코프

(1) 전역변수

 - 프로그램 전체 영역에서 접근이 가능한 변수

count = 0  # 전역 변수

def increment():
    global count
    count += 1

increment()
print(count)  # 1

 

(2) 지역변수

 - 특정 블록(함수, 조건문, 반복문 등) 안에서만 사용이 가능한 변수.

def greet():
    message = "Hello"  # 지역 변수
    print(message)

greet()
# print(message)  # 오류: message는 함수 밖에서는 존재하지 않음

 

(3) 가변 매개변수

 - 매개변수의 개수가 정해져 있지 않은 경우에도 메서드에 인자를 넘길 수 있도록 하는 기능이다.

 - 쉽게 말해, 매개변수로 값을 원하는 만큼 넣어도 해당 함수에선 배열로 전부 넣어줌. 가변적임.

def func(*args):
    print(args)  # 튜플 형태로 들어옴

func(1, 2, 3)  # 출력: (1, 2, 3)

'⚡Python' 카테고리의 다른 글

[Python] 10강 - 모듈  (0) 2025.04.21
[Python] 10강 - 객체지향  (1) 2025.04.18
[Python] 파이썬 인터프리터(Interperter) 쉽게 이해하기  (1) 2025.04.17
[Python] 7강 - 반복 구조  (0) 2025.04.17
[Python] 6강 - 선택 구조  (0) 2025.04.16
'⚡Python' 카테고리의 다른 글
  • [Python] 10강 - 모듈
  • [Python] 10강 - 객체지향
  • [Python] 파이썬 인터프리터(Interperter) 쉽게 이해하기
  • [Python] 7강 - 반복 구조
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (150)
      • 🎓방송통신대학교 (25)
        • 🖥️컴퓨터과학과 (1)
        • 🌍유비쿼터스 컴퓨팅 (10)
        • ⚙️컴퓨터의 이해 (11)
        • 🏛️세계의정치와경제 (3)
      • 📚Computer Science (0)
      • 🛠️Backend (2)
      • ☕Java (20)
        • 📝Java Programming (19)
        • 🧩Java Design Pattern (1)
      • 🌳Spring (9)
        • 🌱Spring Framework (6)
        • 🌱Spring Security (1)
      • ⚡Python (13)
      • 🛢️Database (0)
      • 🌿GitHub (1)
      • 🌐 Network (7)
        • 📜HTTP (7)
      • 🚀DevOps (1)
      • Algorithm Problem Solving (2)
      • Data Structure (1)
      • JavaScript (1)
      • ⛺스파르타코딩클럽 (65)
      • 잡담 (1)
      • 정리가 필요한 글 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    Spring Framework
    방송대
    유비쿼터스 컴퓨팅
    클라우드
    클래스
    파이썬
    방통대
    컴퓨터의 이해
    Java
    세계화
    유비쿼터스 컴퓨팅개론
    컴파일러
    입출력
    방송통신대학교
    자바
    스프링
    다형성
    유비쿼터스
    spring
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
[Python] 9강 - 함수
상단으로

티스토리툴바