본문 바로가기
프로그래밍 언어/Python

함수와 모듈

by 진진리 2023. 9. 15.
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
제너레이터 진행 중
(생략)
'''

 

'프로그래밍 언어 > Python' 카테고리의 다른 글

객체지향  (0) 2023.09.18
문자열  (0) 2023.09.15
리스트, 튜플, 딕셔너리, 세트  (0) 2023.09.15
반복문  (0) 2023.09.15
조건문  (0) 2023.09.15