728x90
반응형
함수의 정의
- 여러 개의 문장들을 하나의 이름으로 묶어서 이름만 호출해서 사용하기 위한 개념
- 이름만 호출하면 되므로 코드의 중복을 제거
- 코드의 일정 부분을 별도의 논리적인 개념으로 분리하기 위한 함수로 구분
- 함수의 종류는 보통 Maker Function(내장 함수) 과 사용자 정의 함수로 구분
- 파이썬에서는 함수도 하나의 자료형으로 간주
- 함수의 이름은 함수의 주소가 되고 함수이름()은 함수의 호출(실행)이 된다.
- 함수도 하나의 데이터이므로 변수에 대입할 수 있고 매개변수로 사용할 수 있다.
내장함수
- 별도의 모듈 추가 없이 사용할 수 있는 기본적으로 제공되는 함수들
- 내장함수 : https://docs.python.org/3/library/functions.html
- dir(__builtins__)를 이용해 확인 가능
max(s)
- 시퀀스 자료형(문자열, 리스트, 튜플)을 입력받아 그 자료가 지닌 원소 중 최대값을 리턴하는 함수
print(max(10,30,50,100))
print(max([100,300,200]))
print(max('Hello World'))
함수
- 파이썬에서는 함수나 메소드를 정의할 때 definition를 줄인 키워드 def를 사용한다.
- def 다음에 함수명과 인수들을 나열하고 :를 기술해 몸체를 정의한다.
- 파이썬은 어떤 형식의 데이터도 인수로 전달할 수 있기 때문에 인수의 자료형은 기술안한다.
- return은 결과를 돌려주고자 할 때 결과를 함수를 호출한 곳으로 되돌려줄 때 사용한다.
파이썬 함수의 구조
# 파이썬 함수의 구조
def 함수명(인수1,인수2,... 인수n):
수행할 문장1
수행할 문장2
return 값
일반적인 함수
# 일반적인 함수
def sum(a,b):
result = a+b
return result
a = sum(3,4)
print(a)
입력값이 없는 함수
# 입력값이 없는 함수
def say():
return 'Hi'
a = say()
print(a)
결과값이 없는 함수
# 결과값이 없는 함수
def sum(a,b):
print('%d, %d의 합은 %d입니다. '%(a,b,a+b))
sum(3,4)
입력값도 결과값도 없는 함수
# 입력값도 결과값도 없는 함수
def say():
print('Hi')
say()
여러 개의 입력 값
# 여러 개의 입력 값
def sum_many(*args):
sum = 0
for i in args:
sum +=i
return sum
total = sum_many(1,2,3)
print(total)
total = sum_many(1,3,5,7,9)
print("10까지의 홀수의 값 : ",total)
매개 변수에 초기값 미리 설정하기
# 매개 변수에 초기값 미리 설정하기
def say_myself(name, old, man=True):
print('나의 이름은 %s 입니다.'%name)
print('나이는 %d 살입니다.'%old)
if man:
print('남자 입니다.')
else:
print('여자 입니다.')
say_myself('홍길동',45)
print()
say_myself('홍길동',45,True)
함수 매개 변수에 초기값 설정시 주의사항
- 초기값을 설정한 매개변수의 위치가 중요하다
- 초기화 시키고 싶은 매개변수는 항상 뒤쪽에 설정한다.
lambda
- 함수를 생성할 때 사용하는 예약어
- 함수를 한 줄로 간겨랗게 만들 때 사용
- 구조 - lambda 매개변수1, 매개변수2, 매개변수를 사용한 표현식
예제
# lambda
add = lambda a,b: a+b
add(3,4)
재귀함수
- 재귀함수 - 자기 스스로를 호출하는 함수
- 재귀호출 - 함수가 자기 자신을 다시 호출
# 재귀함수
def some_func(count):
if count>0:
some_func(count-1)
else:
return
print(count)
some_func(5)
728x90
반응형
최근댓글