today = datetime.datetime.today()day = today.daydef 키워드, 함수명, :, 들여쓰기를 이용하여 선언
def addCal():
n1 = int(input())
n2 = int(input())
print(f'n1 + n2 = {n1 + n2})
함수명과 ()를 이용하여 호출
def addCal():
n1 = int(input())
n2 = int(input())
print(f'n1 + n2 = {n1 + n2})
addCal() #함수 호출
함수 내에서 또 다른 함수를 호출하는 것도 가능
def fun1():
print('fun1 호출!')
fun2()
def fun2():
print('fun2 호출!')
fun3()
def fun3():
print('fun3 호출!')
fun1()
pass 키워들르 사용하여 실행문을 생략할 수 있음
함수 호출 시 함수에 데이터를 전달할 수 있음
매개변수는 함수에 입력으로 전달된 값을 받는 변수. 함수의 선언부와 호출부를 연결하는 변수라는 의미
인수는 함수를 호출할 때 전달하는 입력값을 의미함
def greet(customer):
print(f'{customer} 고객님 안녕하세요.')
greet('홍길동')
여기서 customer가 매개변수이고 호출부의 홍길동이 인수
매개변수는 2개 이상을 지정할 수도 있음. 이 때 인수와 매개변수 개수는 일치해야 함
매개변수의 개수가 정해져있지 않을 때에는 *를 활용
def calNums(*numbers):
print(numbers) #tuple 자료형으로 출력됨
return 키워드를 활용하여 함수 실행 결과를 호출부로 반환함
함수가 return을 만나면 실행을 종료함
def divideNumber(n):
if n%2 == 0:
return '짝수'
else:
return '홀수'
returnValue = divideNumber(5)
함수 밖에 선언된 변수로 어디에서나 사용은 가능하나 함수 안에서 수정할 수는 없음
num_out = 10
def printNumbers():
print(num_out)
def printNumber2():
num_out = 20
print(num_out)
printNumbers() # 10
printNumber2() # 20
함수 안에 선언된 변수로 함수 안에서만 사용이 가능
def printNumbers():
num_in = 20
print(num_in)
printNumbers() # 20
print(num_in) # NameError: name 'num_in' is not defined
함수 안에서도 전역변수의 값을 수정할 수 있음
num_out = 10
def printNumbers():
global num_out
num_out = 20
print(num_out)
printNumbers() # 20
print(num_out) # 20
함수 안에 또 다른 함수가 있는 형태
내부 함수를 함수 밖에서 호출할 수 없음
def out_function():
print('out function')
def in_function():
print('in function')
in_function()
out_function() # out function
# in function
in_function() # NameError: name 'in_function' is not defined
함수 선언을 보다 간단하게 할 수 있음
# 1
def calculator(n1, n2):
return n1 + n2
returnValue = calculator(10, 20)
print(returnValue) # 30
# 2
calculator = lambda n1, n2: n1 + n2
returnValue = calculator(10, 20)
print(returnValue) # 30
함수를 정의해 놓은 파이썬 파일의 이름을 import하여 사용 가능
모듈명.함수명의 형태로 모듈에 정의된 함수를 사용할 수 있음
import calculator
n1 = 10
n2 = 20
addValue = calculator.addNumbers(n1, n2)
print(addValue) # 30