728x90
함수: 별도로 존재
메서드: 클래스 내부에 존재
- 함수의 형식
## 함수 선언 부분 ##
def plus(v1, v2) :
result = 0
result = v1 + v2
return result
## 전역 변수 선언 부분 ##
hap = 0
## 메인 코드 부분 ##
hap = pus(100,200)
print("100과 200의 plus() 함수 결과는 %d" %hap)
- 지역변수와 전역 변수
지역 변수: 한정된 지역(선언된 함수 내부 등)에서만 사용되는 변수
전역 변수: 프로그램 전체에서 사용되는 변수
- global 예약어: 함수 안의 변수를 전역 변수로 사용하고 싶을 때 사용
- pass 예약어: 함수를 구현할 때 이름만 만들어 놓고 내용을 비워둘 때 사용
매개변수의 전달
- 매개변수에 기본값을 설정해놓고 전달
def func(v1, v2, v3 = 0) :
result = 0
result = v1 + v2 + v3
return result
세 번째 매개변수가 없으면 0값을 기본으로 사용하라는 의미
- 매개변수의 개수를 지정하지 않고 전달
def func(*para) :
result = 0
for num in para :
result += num
return result
sum = func(10, 20, 30, 40, 50)
*para: 메인에서 전달한 매개변수가 튜플 형식으로 전달됨
def func(**para) :
for k in para.keys() :
print("%s --> %d명입니다." %(k, para[k]))
func(1반 = 20, 2반 = 25, 3반 = 17, 4반 = 22)
**para: 딕셔너리 형식으로 전달 받으므로 함수를 호출할 때 키 = 값 형식으로 사용해야 함
모듈
함수의 집합. 내부의 함수를 다른 파일에서 사용하기 위해서는 모듈을 import 해야 함
from 모듈명 import 함수1, 함수2
또는
from 모듈명 import *
- 모듈의 종류
표준 모듈: 파이썬에서 제공
사용자 정의 모듈: 직접 만들어서 사용하는 모듈
서드 파티 모듈: 외부 단체에서 제공하는 모듈
- 표준 모듈의 목록 일부 확인
import sys
print(sys.builtin_module_names)
- 모듈별로 제공되는 함수 확인
import 모듈
dir(모듈)
- 패키지
여러 모듈을 모아 놓은 폴더로 모듈을 주제별로 분리할 때 주로 사용
- 임포트 형식
from 패키지명.모듈명 import 함수명
- 내부 함수
함수 안에 있는 함수로 해당 함수 내에서만 사용할 수 있다(단독을 사용하면 오류 발생)
- 람다 함수
함수를 한줄로 간단하게 만들어준다
매개변수에 기본값 설정 가능
Sum = lambda num1=10, num2=20 : num1 + num2
map() 함수와 함께 많이 사용됨
myList = [1, 2, 3, 4, 5]
add10 = lambda num : num + 10
myList = list(map(add10, myList))
myList # [11, 12, 13, 14, 15]
또는 2,3행을 합침
myList = list(map(lambda num : num + 10, myList))
- 제너레이터와 yield
yield: 함수를 종결하지 않으면서 값을 반환하고 싶을 때 사용
제너레이터(생성자) 함수: yield가 포함된 함수
def genFunc(num) :
for i in range(0, num) :
yield i
print('제너레이터 진행 중')
for data in genFunc(5) :
print(data)
'''
결과값:
0
제너레이터 진행 중
1
제너레이터 진행 중
2
제너레이터 진행 중
(생략)
'''