[Python] 함수(가변 매개변수, 중첩, 람다함수)

2021. 7. 20. 15:28· Programming study/Python
목차
  1. 01  가변 매개변수
  2.  
  3.  
  4.  
  5. 02 중첩함수
  6. 03 람다 함수

01  가변 매개변수

가변 매개변수? 매개변수의 개수를 지정하지 않고 전달할 때 사용

 

- *args(언팩킹)

매개변수 앞에 *를 붙이면 매개변수를 튜플로 처리한다는 의미이다. 보통 *args라고 많이 하지만, 이름은 상관없다.

 

 

예문) ①

1
2
3
4
def test(*a):
    for i in a:
        print('{}'.format(i))
test(10, 20, 30)

 

②

 

1
2
3
4
def test(*a):
    for i, v in enumerate(a):
        print('{} {}'.format(i,v))
test(10, 20, 30)

 

①과 ②는 같은 의미이다. 여기서 enumerate는 인덱스 값과 값을 동시에 출력할 수 있다.

 

 

 

 

- **kwargs(언패킹)

매개변수 앞에 **를 붙이면 매개변수를 딕셔너리로 처리한다는 의미이다. 보통 *kwargs라고 많이 하지만, 이름은 상관없다.

 

 

예문) 

 

1
2
3
4
5
def test(**a):
    for i in a:
        print('{} {}'.format(i, a[i]))
test(트와이스=9, 있지=5, 블랙핑크=4)
 
Colored by Color Scripter
 

 

 

 

 

02 중첩함수

중접함수? 함수안에 정의된 함수

 

 

- 예문)

 

1
2
3
4
5
6
7
def nested_func(num):
    def func_in_func(num):
        print(num)
    print("In func")
    func_in_func(num + 100)
 
nested_func(100)
cs

 

1
2
3
4
5
6
7
def out(num):
   def inner(n):
       result1 = n + 1
       return result1
   result2 = inner(num)**2
   return result2;
print(out(3))
cs

 

 

 

 

 

03 람다 함수

람다함수? 코드를 간결하게 작성, 메모리 절약, 가독성 향상, 즉시 실행 함수

*남발하여 사용하지 않도록 한다.

 

 

- 예문)

 

1
2
3
4
5
6
7
def result(x,y):
    print(x*y)
result(2,3)

#람다함수
result = lambda x, y : x*y
print(result(2,3))

위의 1~3번은  6~7번째 줄과 같다. 람다함수로 좀 더 코드를 짧게 짤 수 있다.

 

1
2
3
def result(x, y, func):
    print(x + y + func(2,3))
result(2, 3, lambda x, y : x+y)
 

 

 

 

- 람다함수 + map()함수

*map(함수명, 리스트명)은 리스트 안에 요소를 하나씩 함수에 적용시킨다.

 

 

예문)

 

1
2
3
4
list1 = [1,2,3,4,5]
print(list(map(lambda x : x+10, list1)))
#출력결과
[11, 12, 13, 14, 15]

 

 

 

*번외)

강의를 들으면서 input함수를 사용하는 새로운 방법을 배웠는데, 입력을 받음과 동시에 출력까지 가능해서 간편한 방법인 것 같다.

 

1
print('name-{0}\nphone-{1}'.format(input('name: '), input('phone: ')))
cs
저작자표시 비영리 (새창열림)

'Programming study > Python' 카테고리의 다른 글

[Python] 내장함수  (1) 2021.07.28
[Python] 모듈, 패키지  (0) 2021.07.21
[Python] for-else, while-else문  (0) 2021.07.19
[Python] 리스트, 튜플, 딕셔너리  (0) 2021.07.15
[Python] 숫자형, 문자형  (0) 2021.07.15
  1. 01  가변 매개변수
  2.  
  3.  
  4.  
  5. 02 중첩함수
  6. 03 람다 함수
'Programming study/Python' 카테고리의 다른 글
  • [Python] 내장함수
  • [Python] 모듈, 패키지
  • [Python] for-else, while-else문
  • [Python] 리스트, 튜플, 딕셔너리
주디(Junior developer)
주디(Junior developer)
Hello World!😀 Hi, I'm Judy🐰(Junior Developer)
주디(Junior developer)
주디는 언제나 당근을 원해🥕
주디(Junior developer)
전체
오늘
어제
  • 분류 전체보기 (83)
    • 연합동아리 (5)
      • 멋쟁이사자처럼🦁 (2)
      • UMC (0)
      • SOPT (3)
    • 프론트엔드 (3)
      • HTML + CSS + Javascript (3)
    • 백엔드 (12)
      • Django (2)
      • SpringBoot (9)
      • Infra (1)
    • Programming study (18)
      • JAVA (3)
      • Python (14)
    • Coding (41)
      • Baekjoon(백준) (32)
      • 자료구조 (1)
      • 코딩테스트 공부 (7)
      • 프로그래머스 (0)
      • 트러블슈팅 (1)
    • github (2)
    • CS (1)
      • 운영체제 (0)
      • Database (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • dfs
  • HTML
  • 백준
  • JavaScript
  • 멋사
  • Java
  • c언어
  • SOPT
  • CSS
  • 스프링부트
  • Dear_Santa
  • 만들 수 없는 금액
  • BFS
  • 자바
  • JPA
  • django
  • 장고
  • 파이썬
  • 리스트
  • Python
  • 12015번
  • Baekjoon
  • 코테
  • 에라토스테네스의 체
  • C
  • 트랜잭션
  • 프로그래머스
  • 웹 프로그래밍
  • 변수
  • SpringBoot

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
주디(Junior developer)
[Python] 함수(가변 매개변수, 중첩, 람다함수)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.