: 수학에서의 함수와 동일. 특정 코드를 필요에 따라 함수 호출을 통해 사용함. a. 코드 반복을 줄일 수 있는 효과 b.재사용 c.가독성과 효율성 좋음.
def addFun(x,y)
return x + y
addFun(3,4)
: 파이썬에서 기본으로 제공하는 함수

: 사용자가 직접 선언하는 함수
def printUserName(name):
print(f'{name}고객님, 안녕하세요.')
: 함수는 def 키워드, 함수명,:,들여쓰기를 이용해서 선언함.
def addCal():
n1 = int(input('n1 입력:'))
n2 = int(input('n2 입력:'))
print(f'n1+n2 ={n1 +n2}')
: lambda 키워드를 이용하면 함수 선언을 간단하게 할 수 있음.
#기존
def calculator(n1,n2):
return n1 + n2
returnValue = calculator(10,20)
print(f'returnValue: {returnValue}')
#lambda적용
calculator = lambda n1, n2: n1+n2
returnValue =calculator(10,20)
print(f'returnValue: {returnValue}')
: 함수명과 '()'를 이용해서 함수 호출
addCal()
:
def fun1():
print('1번')
fun2()
print('5번')
def fun2():
print('2번')
fun3()
print('4번')
def fun3():
print('3번')
fun1()
#구구단 연쇄적으로 호출하기
def guguDan2():
for i in range (1,10):
print('2 * {} = {}'.format(i , 2 * i))
guguDan3()
def guguDan3():
for i in range (1,10):
print('3 * {} = {}'.format(i , 3 * i))
guguDan4()
def guguDan4():
for i in range (1,10):
print('4 * {} = {}'.format(i , 4 * i))
guguDan2()
def out_funtion():
print('out_function called!')
def in_function(): #내부함수
print('in_function called!')
in_function() #내부함수 호출
out_funtion()
#예시
def calculator(n1,n2,operator):
def addCal():
print(f'덧셈 연산: {n1 + n2}')
def subCal():
print(f'뺄셈 연산: {n1 - n2}')
def mulCal():
print(f'곱셈 연산: {n1 * n2}')
def divCal():
print(f'나눗셈 연산: {n1 / n2}')
if operator == 1:
addCal()
elif operator == 2:
subCal()
elif operator == 3:
mulCal()
elif operator == 4:
divCal()
while True:
num1 = float(input('실수(n1) 입력: '))
num2 = float(input('실수(n2) 입력: '))
operatorNum = int(input('1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 5.프로그램 종료'))
if operatorNum == 5:
print('bye~')
break
calculator(num1,num2,operatorNum)
: 함수 호출 시 함수에 데이터를 전달 할 수있으며
#매개변수 2 인수 2
def greet(customer1,customer2):
print('{}님,{}님 안녕하세요.'.format(customer1,customer2))
greet('박감자','김감자')
def printNumber(*numbers):
for number in numbers:
print(number,end='')
print()
printNumber()
printNumber(1,2)
printNumber(1,2,3)
: return 키워드를 이용하면 함수 실행 '결과'를 '호출부'로 반환 할 수있음. return 이후의 코드는 실행되지 않음.
def divideNumber(n):
if n % 2 == 0:
return '짝수'
else:
return '홀수'
returnValue = divideNumber(8)
print(f'returnValue: {returnValue}')
import random
def oddRandom():
while True:
rNum = random.randint(1,100)
if rNum % 2 != 0:
break
return rNum
print(f'returnValue: {oddRandom()}')
: 함수 밖에 선언된 변수로 어디에서나 사용은 가능하나 함수 안에서 수정할 수 없음.
num_out = 10
def printNumber():
print(f'num_out:{num_out}')
printNumbers()
print(f'num_out: {num_out}')
: 함수 안에 선언된 변수로 함수 안에서만 사용 가능.
def printNumber():
num_in = 20
print(f'num_in: {num_in}')
printNumbers()
: global을 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있다.
num_out = 10
def printNumbers():
global num_out
num_out = 20
print(f'num_out: {num_out}') #20
printNumbers()
print(f'num_out: {num_out}') #20