Chapter 7. 함수

함수(Function)는 특정 작업을 수행하는 코드의 묶음입니다. 프로그램에서 같은 코드를 여러 번 작성하는 대신 함수를 만들어 사용하면 코드가 간결해지고 유지보수가 쉬워집니다.
예를 들어, 다음과 같은 작업을 함수로 만들 수 있습니다:
- 인사말 출력
- 두 수의 합 계산
- 회원 정보 출력
함수를 사용하는 이유는 다음과 같습니다:
- 같은 코드를 여러 번 작성하지 않아도 됩니다.
- 코드의 재사용이 가능합니다.
- 프로그램의 구조를 이해하기 쉽습니다.
- 유지보수가 편리합니다.
함수는 def 키워드를 사용하여 만듭니다.
기본 문법은 다음과 같습니다:
def 함수이름():
실행문
예제 1:
def hello():
print("안녕하세요.")
함수를 만들었다고 바로 실행되는 것은 아니며, 함수를 호출해야 실행됩니다.
hello()
여러 번 호출하기:
def hello():
print("반갑습니다.")
hello()
hello()
hello()
반갑습니다.
반갑습니다.
매개변수(Parameter)는 함수에 값을 전달하기 위한 변수입니다.
기본 문법은 다음과 같습니다:
def 함수이름(매개변수):
실행문
예제 1:
def hello(name):
print(name + "님 반갑습니다.")
hello("홍길동")
hello("김철수")
김철수님 반갑습니다.
예제 2. 두 수의 합 출력:
def add(a, b):
print(a + b)
add(10, 20)
add(100, 300)
400
여러 개의 매개변수:
def student(name, age, major):
print("이름 :", name)
print("나이 :", age)
print("학과 :", major)
student("홍길동", 20, "컴퓨터공학")
나이 : 20
학과 : 컴퓨터공학
기본값(Default Parameter):
def hello(name="손님"):
print(name + "님 환영합니다.")
hello()
hello("홍길동")
홍길동님 환영합니다.
함수는 작업 결과를 돌려줄 수 있습니다. 이때 사용하는 키워드가 return입니다.
기본 문법은 다음과 같습니다:
def 함수이름():
return 값
예제 1:
def add(a, b):
return a + b
result = add(10, 20)
print(result)
예제 2:
def square(num):
return num * num
print(square(5))
문자열 반환:
def message():
return "파이썬 공부"
print(message())
여러 개의 값 반환:
def calc(a, b):
return a + b, a - b
x, y = calc(20, 10)
print(x)
print(y)
10
return의 역할:
def test():
print("첫 번째")
return
print("두 번째")
test()
함수 안에서 만든 변수는 함수 안에서만 사용할 수 있습니다.
def test():
num = 100
print(num)
test()
함수 밖에서는 사용할 수 없으며, 다음과 같이 실행하면 오류가 발생합니다:
print(num)
전역 변수(Global Variable):
name = "홍길동"
def hello():
print(name)
hello()
람다(Lambda)는 이름이 없는 간단한 함수입니다. 간단한 계산을 할 때 많이 사용됩니다.
기본 문법은 다음과 같습니다:
lambda 매개변수 : 반환값
예제 1:
add = lambda a, b: a + b print(add(10, 20))
일반 함수와 비교:
def square(x):
return x * x
print(square(5))
람다 함수:
square = lambda x: x * x print(square(5))
map()과 람다:
numbers = [1, 2, 3, 4, 5] result = list(map(lambda x: x * 2, numbers)) print(result)
filter()와 람다:
numbers = [1, 2, 3, 4, 5, 6] result = list(filter(lambda x: x % 2 == 0, numbers)) print(result)
def average(a, b, c):
return (a + b + c) / 3
score = average(90, 80, 100)
print("평균 :", score)
- 함수는 특정 작업을 수행하는 코드의 묶음이다.
- 함수를 사용하면 코드의 재사용이 가능하고 유지보수가 용이하다.
- 함수는
def키워드를 사용하여 정의한다. - 매개변수를 통해 함수에 값을 전달할 수 있다.
- 함수는
return키워드를 사용하여 값을 반환할 수 있다. - 전역 변수는 함수 안에서도 사용할 수 있다.
- 람다 함수는 간단한 함수를 정의할 때 사용된다.