파이썬 - 함수 중급

    728x90

    1. 다양한 매개 변수

    1-1. 위치 매개변수

    가장  기본적인 매개변수

    함수를  호출할 때 순서대로 데이터(인자)를 넘겨줘야 함

    다른 매개변수와 함께 쓸 때는 항상 맨 앞에 써야한다

     

    함수 정의

    def my_func(a,b):
    	print(a,b)

    함수 호출

    my_func(1,2)

     

    1-2. 기본 매개변수

    매개변수의 기본적인 값

    함수를 정의할 때 매개변수의 기본값을 지정할 수 있음 ex) def 함수명(변수명='값'):

     

    함수 정의

    def post_info(title, content='내용없음'):
    	print('제목:', title)
        print('내용:', content)

    함수 호출

    >>>post_info('출석합니다!')
    
    제목: 출석합니다!
    내용: 내용없음

     

    1-3. 키워드 매개변수

    함수 호출 시에 키워드를 붙여 호출

    매개변수의 순서를 지키지 않아도 된다. (변수명='값')

     

    함수 정의

    def post_info(title, content):
    	print('제목:',title)
    	print('내용:',content)

    함수 호출

    >>> post_info(content='내용입니다',title='제목입니다')
    
    제목: 제목입니다
    내용: 내용입니다

     

    1-4. 위치 가변 매개변수

    가변 매개변수 = 개수가 정해지지 않은 매개변수

    함수에 여러 개의 매개변수를 입력할 수 있음

    매개변수 앞에 *가 붙는다.(튜플형)

     

    함수 정의

    def print_fruits(*args):
    	for arg in args:
    		print(arg)

    함수 호출

    >>>print_fruits('apple','orange','mango')
    
    apple
    orange
    mango

     

    1-5. 키워드 가변 매개변수

    가변 매개변수 = 개수가 정해지지 않은 매개변수

    매개변수 앞에 **가 붙는다.(딕셔너리형)

    함수 정의

    def comment_info(**kwargs):
    	for key, value in kwargs.items():
    		print(f'{key}:{value}')

    함수 호출

    >>>comment_info(name='파린이',content='정말 감사합니다!')
    
    name:파린이
    content:정말감사합니다.

     

    1-6. 매개변수 작성 순서

    위치 - 기본 - 위치 가변 - 키워드(기본) - 키워드 가변

    def poost_info(a,b,content='내용없음',*tags,title, **kwargs):
    	print(f'제목 :{title}')
    	print(f'내용 :{content}')
    	print(f'태그 :{tags}')
        
    
    >>>post_info('위치1','위치2',태그1,태그2,title='제목입니다', name=홍길동, age=30)

     

    2. 람다 함수

    이름을 지을 필요도 없는 간단한 형태의 함수

    다른 함수의 인자로 넣을 수 있다.

    코드가 간결해지고, 메모리가 절약됨

     

    2-1. 람다 함수 사용 방법 (기본)

    기존 함수 정의 방법

    def 함수명(매개변수):
    	return 결과
        
    def minus_one(a):
    	return a-1

    기존 함수 호출 방법

    >>> minus_one(10)
    9

     

    람다 함수 정의 방법

    lambda 매개변수:결과
    
    lambda a:a-1

    람다함수 호출 방법

    #바로 호출
    >>>(lambda a:a-1)(10)
    9
    
    #변수로 지정 후 호출
    >>>minus_one = lambda a:a-1
    >>>minus_one(10)
    9

     

    2-2. 람다 함수 사용 방법 (if문 사용)

    기존 함수 정의 방법

    def is_positive_number(a):
    	if a>0:
    		return True
    	else:
    		return False

    기존 함수 호출 방법

    >>>is_positive_number(-2)
    False

     

     

    람다 함수 정의 방법

    lambda a:True if a>0 else False

    람다함수 호출 방법

    >>>(lambda a:True if a>0 else False)(-2)
    False

     

    3. map 함수

    순서가 있는 자료형의 모든 원소에 함수를 적용 

     

    3-1. map함수 사용 방법

    map(함수, 순서가 있는 자료형(ex. 리스트, 튜플, 딕셔너리))

    map(int, ['3','4','5','6'])

    #리스트 사용법
    list(map(int, ['3','4','5','6']))

     

    3-2. 예제 (리스트 모든 요소의 공백 제거)

    1) for문 사용했을 때

    items = [' 로지덱 마우스 ',' 앱솔키보드 ']
    for i in range(len(items)):
    	items[i]=items[i].strip()

    2) map 사용했을 때

    def strip_all(x):
    	returen x.strip()
    items = [' 로지덱마우스 ', ' 앱솔키보드 ']
    items = list(map(strip_all,items))

    3) map + 람다함수 사용

    items=[' 로지덱마우스 ',' 앱솔키보드 ']
    items=list(map(lambda x:x.strip(),items))

     

    4. filter 함수

    함수를 통해 논리값 계산 후, True값을 가진 값만 반환

     

    4-1. filter 함수 사용방법

    filter(함수, 순서가 있는 자료형(ex. 리스트, 튜플, 딕셔너리))

    def func(x):
    	return x<0
    filter(func, [-3,-2,0,5,7])

     

    4-2. 예제 (리스트에서 길이가 3이하인 문자들만 필터링)

    1) for문 사용했을 때

    animals = ['cat', 'tiger', 'dog', 'bird', 'monkey']
    result = []
    for i in animals:
    	if len(i) <= 3:
    			result.append(i)

    2) filter 사용했을 때

    animals = ['cat', 'tiger', 'dog', 'bird', 'monkey']
    def word_check(x):
    	return len(x) <=3
    result = list(filter(word_check, animals))

    3) filter + 람다함수 사용

    animals = ['cat', 'tiger', 'dog', 'bird', 'monkey']
    result = list(filter(lambda x : len(x) <= 3, animals))

     

    'Python > 문법' 카테고리의 다른 글

    파이썬 - 정규표현식  (0) 2022.01.17
    파이썬 - 자료형 심화  (1) 2022.01.09
    파이썬 - enumerate 함수  (0) 2022.01.04
    파이썬 - 예외 처리  (0) 2022.01.03
    파이썬 - 모듈  (0) 2021.12.31

    댓글