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 |
댓글