본문 바로가기

배우기/복습노트[Python과 분석]

[복습] Python 사용자 정의 함수(2)

728x90
반응형

사용자 정의 함수에 대해서는 앞서 다음과 같이 공부한 적이 있다.

https://metime.tistory.com/233

 

위 내용에 대하여 좀 더 자세히 배웠다.

 

 

사용자 정의 함수

  - 함수: input과 output의 관계를 표현한 객체

  - 사용자가 직접 함수 생성 가능(코드의 반복을 줄이거나 적용함수에 전달하기 위해 주로 생성)

 

 

1. lambda

  - 언어적 표현이 제한적(단순한 input과 output의 관계만을 전달함. 변수의 선언 불가(새로운 객체 생성 불가))

  - 반복문 / 조건문 전달이 불편함(가능은 한데...)

 

문법

함수명 = lambda input_value : output_value

함수명 = lambda input_value : 참리턴 if 조건 else 거짓리턴

함수명 = lambda input_value : 참리턴 if 조건1 else 참리턴2 if 조건2 else 거짓리턴 (추천하지 않음. 참고로만 알고 있을 것)

 

 

예) l1에서 각 원소의 크기가 4보다 큰 경우는 A, 그 외에는 B를 리턴하여라.

 

 

예) l2의 값이 10이면 인사부, 20이면 재무부, 30이면 총무부를 리턴하여라(3차 다항식)

 

 

 

 

2. def

  - 모든 언어적 표현이 가능함(새로운 객체를 생성하거나 연산도 가능, 치환도 가능, 원본 객체를 직접 수정 가능 등)

  - 반복문 / 조건문 전달이 용이함

 

 

문법

def 함수명 (input_value) :

      본문

      return output_value

 

예) 하나의 값을 입력 받아서 1을 더하여 리턴하여라

 

 

 

예) 두 리스트의 총 합을 리턴하여라

l1 = ['1,200', '2,200']

l2 = [300, 500]

 

 

 

예) 아래 기능을 갖는 함수를 정의하여라

'abc@def' → 'def'

'abc;def;ccc' 'abc'

'abc|def|ccc|ddd' 'ddd'

 

그렇다면 아래 리스트에 대해서 각각 def, abc, ddd로 리턴해보아라.

list1 = ['abc@def', 'abc;def;ccc', 'abc|def|ccc|ddd']

 

 

 

728x90
반응형