티스토리 뷰
특수함수: 특정한 문제의 해결 과정에서 필요로 하는 함수
가변인수 함수
파이썬에서는 하나의 매개변수로 여러 개의 실인수를 받을 수 있는 가변인수를 제공합니다. 여러 개의 실인수를 하나이 매개변수로 받을 때 '*매개변수' 형식은 튜플(tuple) 자료구조로 받고, '**매개변수' 형식은 딕트(dict) 자료구조로 받습니다.
형식
def 함수명(매개변수, *매개변수, **매개변수) : |
실습 가변인수를 갖는 함수 예시
# (1) 튜플형 가변인수
def Func1(name, *names) :
print(name) # 실인수 : 홍길동
print(names) # 실인수 : ('이순신', '유관순')
Func1("홍길동", "이순신", "유관순")
홍길동
('이순신', '유관순')
# statistics 모듈 import
from statistics import mean, variance, stdev
avg= 3
var= 2.5
std= 1.5811388300841898
# (3) 딕트형 가변인수
def emp_func(name, age, **other):
print(name)
print(age)
print(other)
# emp_func 함수 호출
emp_func('홍길동', 35, addr='서울시', height=175, weight=65)
홍길동
35
{'addr': '서울시', 'height': 175, 'weight': 65}
# (1) 튜플형 가변인수
Func1() 함수는 name과 names의 매개변수를 갖습니다. name은 일반 매개변수이고, names는 가변인수의 역할을 하는 매개변수입니다. 함수 호출 부분에서 3개의 실인수("홍길도", "이순신", "유관순")를 사용하기에 맨 처음 실인수는 name 매개변수로 할당되고, 나머지 2개는 가변인수인 names 변수로 할당됩니다. 가변인수는 여러 개의 실인수를 튜플(tuple) 자료구조로 받습니다.
# (2) 통계량 구하는 함수
첫 번째 매개변수인 func는 함수명을 받는 역할이고, data는 가변인수 역할을 하는 매개변수입니다. 함수명에 따라서 가변인수의 통계량을 구하는 함수인데, # statis 함수 호출 부분에서 첫 번째 실인수는 '함수명'이고, 두 번째 이후는 가변인수에 할당될 5개의 숫자입니다. 함수의 호출 순서에 따라서 평균, 분산, 표준편차의 값이 출력됩니다.
# (3) 딕트형 가변인수
매개변수 앞부분에 '**' 기호를 붙이면 사전형 자료(key=value)를 받는 가변인수가 됩니다. #emp_func 함수 호출 부분에서 사전형 실인수(addr='서울시', height=175, weight=65)는 모두 other 가변인수가 받습니다. 덕트형 가변인수는 실인수를 딕트(dict) 자료구조로 받습니다.
람다 함수
람다 함수(Lambda function)는 정의와 호출을 한 번에 하는 익명함수입니다. 복잡한 함수 호출 과정을 생략해서 처리 시간이 단축되고, 코드의 가독성을 제공하는 이점을 가집니다.
형식
lambda 매개변수: 실행문(반환값) |
람다 함수의 실행 과정은 lambda 명령어 다음에 오는 매개변수에 의해서 외부의 값을 받고, 콜론(:) 다음에는 실행문의 실행 결과가 반환됩니다. 람다 함수는 한 줄 문장 안으로 자연스럽게 삽입될 수 있어서 인라인 함수라고도 불립니다.
실습 람다 함수 예시
# (1) 일반 함수
def Adder(x, y):
add = x + y
return add
print('add=', Adder(10, 20))
add= 30
# (2) 람다 함수
print('add=', (lambda x, y: x + y)(10, 20))
add= 30
# (1) 일반 함수
매개변수 x, y를 갖는 Adder() 함수는 두 인수를 더해서 덧셈 결과를 반환하는 일반함수입니다.
# (2) 람다 함수
lambda 명령어 다음에 매개변수 x, y를 넣고, 콜론 다음에 덧셈 명령문을 넣어서 덧셈 결과를 반호나하는 한 줄 함수입니다.
스코프(scope)
스코프: 특정 지역에 의해서 구분되는 함수 또는 블록(if, for, while 등), 함수 내부에서 전역 변수를 사용하기 위한 명령문 형식입니다.
형식
def 함수명(인수): global 전역변수 |
실습 함수 스코프 예시
# (1) 지역변수 예
x = 50 # 전역변수
def local_func(x):
x += 50 # 지역변수 -> 종료 시점 소멸
local_func(x)
print('x=', x)
x= 50
# (2) 전역변수 예
def global_func():
global x # 전역변수 x 사용
x += 50 # x+50 = 100
global_func()
print('x=', x)
x= 100
# (1) 지역변수 예시
함수 바깥쪽에서 선언된 전역변수 x를 실인수로 함수를 호출할 경우 함수 내부에서 x에 50을 더해서 x는 100이 됩니다. 함수 내부에서 사용한 x는 함수 내부에서만 사용되는 지역변수입니다.
# (2) 전역변수 예시
global_fuc() 함수에서 'global x' 명령문은 함수 바깥쪽에서 선언된 전역변수 x를 사용한다는 의미입니다. 따라서 함수 내부에서 x에 50을 더해진 값 100이 함수가 종료되어도 그대로 유지됩니다.
'Python > 실전 예제로 배우는 파이썬 프로그래밍' 카테고리의 다른 글
재귀함수(Recursive function) (0) | 2023.03.09 |
---|---|
중첩함수 (0) | 2023.03.08 |
사용자정의함수 (0) | 2023.03.06 |
내장함수 (0) | 2023.03.05 |
여러 모양의 자료 만들기 연습문제 (0) | 2023.03.04 |
- Total
- Today
- Yesterday
- 알고리즘
- 데이터분석
- Kaggle
- sql 테스트
- 태블로
- Lv3
- 머신러닝
- 캐글
- mysql
- SQLD
- ai
- LV1
- Python
- 데이터사이언스
- API
- LV2
- 인공지능
- 부스트코스
- 쿼리 테스트
- 데이터 시각화
- 파이썬
- 데이터 분석
- nlp
- 딥러닝
- lv4
- EDA
- ML
- 프로그래밍
- SQL
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |