함수는 파이썬에서 기본으로 제공하는 내장함구와 사용자가 직접 선언하는 사용자 함수가 있다.
내장함수 : 기본적으로 파이썬 내부에 선언되어있는 함수(개발자들이 미리 만들어서 파이썬 내부에 만들어둔 함수)
사용자함수 : 직접 만들어서 사용하는 함수
함수내부에 함수를 호출하여 중복해서 사용할 수 있다.
def greet(): # 함수 선언부
print('안녕하세요')
greet() # 함수 호출부
def greet(customer): # 함수 선언부 customer -> 매개변수
print(f'{customer} 고객님 안녕하세요.')
greet('홍길동') # 함수 호출부 홍길동 -> 인수
num_out = 10 # 전역변수(전역변수이기때문에 함수 안에서 변경할수 없다.)
def printNumbers():
num_out = 20 # 지역변수 (함수안에서 선언을 했기떄문에 안에서만 사용할 수 있다.)
print(f'num_out:{num_out}')
printNumbers() # 함수를 먼저 실행 했기떄문에 함수에있는 지역변수 20이 먼저 출력된다.
print(f'num_out:{num_out}')
# 함수 이후에 출력했기때문에 처음 선언한 전역변수에있는 10이 출력된다.
위 코드의 출력 결과로는
num_out: 20
num_out: 10
calculator = lambda n1, n2: n1+n2
# lambda 매개변수 : 계산식으로 선언할수 있다.
# 간단한 함수는 람다함수로 쉽게 선언할 수 있다.
returnValue = calculator(10, 20)
print(returnValue)
함수가 선언되어있는 파이썬 파일
내부 모듈 : 파이썬 설치시 기본적으로 사용할 수 있는 모듈
외부 모듈 : 별도 설치 후 사용할 수 있는 모듈
사용자 모듈 : 사용자가 직접 만든 모듈
from calculator import add, sub # ,콤마로 여러 함수를 불러올수도있다.
__name__전역변수
__name__에는 모듈 이름이 저장되거나 '__main__'이 저장된다.
from CalculatorForInt import divCal, subCal, mulCal, addCal
print(addCal.add(10,20))
print(subCal.sub(10,20))
print(mulCal.mul(10,20))
print(divCal.div(10,20))
print('-'*20)
from CalculatorForFloat import divCal, subCal, mulCal, addCal
print(addCal.add(10,20))
print(subCal.sub(10,20))
print(mulCal.mul(10,20))
print(divCal.div(10,20))
예시
# 수학 관련 함수
# 합
listVar = [2, 5, 3.14, 58, 10, 2]
print(f'sum(listVar) : {sum(listVar)}')
#최대값
listVar = [2, 5, 3.14, 58, 10, 2]
print(f'max(listVar) : {max(listVar)}')
#최소값
listVar = [2, 5, 3.14, 58, 10, 2]
print(f'min(listVar) : {min(listVar)}')
#거듭제곱
print(f'pow(13, 2) : {pow(13, 2)}')
#반올림
print(f'round(3.141592, 1) : {round(3.141592, 1)}')
print(f'round(3.141592, 2) : {round(3.141592, 2)}')
print(f'round(3.141592, 3) : {round(3.141592, 3)}')
print(f'round(3.141592, 4) : {round(3.141592, 4)}')
print(f'round(3.141592, 5) : {round(3.141592, 5)}')
import math
#절대값
print(f'math.fabs(-10) : {math.fabs(-10)}')
print(f'math.fabs(-0.12895) : {math.fabs(-0.12895)}')
#올림
print(f'math.ceil(5.21) : {math.ceil(5.21)}')
print(f'math.ceil(-5.21) : {math.ceil(-5.21)}')
#내림
print(f'math.floor(5.21) : {math.floor(5.21)}')
print(f'math.floor(-5.21) : {math.floor(-5.21)}')
#버림
print(f'math.trunc(5.21) : {math.trunc(5.21)}')
print(f'math.trunc(-5.21) : {math.trunc(-5.21)}')
#최대공약수
print(f'math.gcd(14,21) : {math.gcd(14,21)}')
#팩토리얼
print(f'math.factorial(10) : {math.factorial(10)}')
#제곱근
print(f'math.sqrt(4) : {math.sqrt(4)}')
print(f'math.sqrt(12) : {math.sqrt(12)}')
# 시간 관련 모듈
import time
lt = time.localtime()
print(f'time.localtime() : {lt}')
print(f'lt.tm_year : {lt.tm_year}')
print(f'lt.tm_mon : {lt.tm_mon}')
print(f'lt.tm_mday : {lt.tm_mday}')
print(f'lt.tm_hour : {lt.tm_hour}')
print(f'lt.tm_sec : {lt.tm_sec}')
print(f'lt.tm_wday : {lt.tm_wday}')