함수
특정한 작업(task)를 수행하는 묶음.
basics: def로 정의하며, 재사용 가능하고(reuseable), 입력(arguments), 출력(return)값을 가질 수 있다. 입력과 출력이 없는 함수도 있다.
예시1: 기초 형태 (template)
def add(a, b): #함수의 이름이 'add', 입력은 a와 b
return a + b # 출력은 a+b
def sayhi(): # 함수의 이름이 'sayhi', 입력과 출력 없음
print('Hi')
def func(a=3,b=5): # 함수의 이름이 'func', 입력 a와 b의 default가 있음.
"""
a and b are the two arguments of this function
and this function calculates a+b, then return the result as output
"""
return a+b
아래 실행해보자
## default value 활용됨
print(func())
print(func(3,5))
print(func(5,3))
print(func(a=3,b=6))
print(func(b=6,a=3))
print(func.__doc__) ## docstring 출력
print(help(func))
print(help(help))
def f(a=3,b=5,c,d):
print(a+b)
print(c+d)
return a*b*c*d
위 함수 중 하나를 모듈로 만들고 import 해보기
한 재료의 부피와 질량을 측정해 밀도를 계산하려고 한다. 각 측정값에 오차가 있어, 측정을 여러번 되풀이 한 다음 평균 값을 계산해 밀도를 구하려고 한다. 아래의 예시를 직접 작성해보고 이를 활용해보자.
# 이 코드를 파일명 `calc_dens.py`로 작성하여 저장하자.
def calc_dens(mass, volume):
"""
질량은 g 단위로, 부피는 mm^3으로
"""
density = mass / volume
return density
main.py로 작성하여 저장하자.mass=[6.01, 6.05, 5.93, 6.03] vol=[3.11, 3.20, 3.09, 3.15]
import calc_dens ## calc_dens.py 모듈을 import
dens=[] ## list 자료 생성 for i in range(len(mass)): val=calc_dens(mass=mass[i],volume=vol[i]) ## calc_dens.py 모듈 내의 함수 dens.append(val) ## list 자료에 값 저장
average=0. for i in range(len(dens)): average=average+dens[i] average=average/len(dens) ```
위 생성된 모듈을 활용해서 표준 편차 구해보기. $std(v_i)=\sum_i^n (\bar{v} - v_i)^2$
print 함수input 함수# 1. 단순 문자열 출력
print("안녕하세요, 파이썬!")
# 2. 숫자 출력 및 연산 결과 출력
print(2026)
print(10 + 20)
# 3. 여러 값 동시에 출력 (쉼표로 구분하면 한 칸씩 띄어서 출력돼요)
print("올해는", 2026, "년입니다.")
# 1. 입력 받기
age_str = input("당신의 현재 나이를 입력하세요: ")
# 2. 형변환 (문자열로 들어온 나이를 계산할 수 있게 정수(int)로 바꿔줘요)
age = int(age_str)
# 3. 계산하기
next_year_age = age + 1
# 4. 결과 출력하기
print("내년에 당신은", next_year_age, "살이 됩니다!")
def add_all(*args):
# args는 입력된 모든 숫자가 담긴 튜플 형태. 예: (1, 2, 3)
return sum(args)
# 인자의 개수를 자유롭게 넣을 수 있습니다.
print(add_all(1, 2)) # 결과: 3
print(add_all(1, 2, 3, 4)) # 결과: 10
def print_info(**kwargs):
# kwargs는 dictionary 형태. 예: {'name': 'Alice', 'age': 30}
for key, value in kwargs.items():
print(f"{key}: {value}")
# 키워드 형태로 인자를 자유롭게 넘깁니다.
print_info(name="Alice", age=30, role="Professor")
# 출력:
# name: Alice
# age: 30
# role: Professor