함수란 기능이다
특정 기능을 재사용 하기 위해 사용하고 변수를 사용하는 이유와 동일하다.
내장함수 : 파이썬에서 기본으로 제공하는 함수
int() str() input()
사용자함수 : 사용자가 직접 선언하는 함수
- 반복을 최소한으로 줄인다.
- 동일한 기능들을 하나로 묶어놓음 ->코드의 가독성이 좋아진다.(하나의 기능을 하나로 묶어놓는다)
- 에러가 날 경우 하나의 모듈로 만든게 함수이기 때문에 특정 A라는 기능에서 A의 함수를 수정하면 된다.
(전체적인 코드를 보지 않고도)
자주 쓰이는 긴 코드가 있다면 그걸 짧은 한 단어로 축약하고 싶을 때 쓰면 된다. (함수의 용도1)
함수가 어떻게 생겼냐
def 축약할이름():
축약할긴코드들1
축약할긴코드들2
축약할 이름 자유롭게 작명하고
indent(들여쓰기) 안에다가 축약할 코드를 다 담아주면 된다.
그럼 앞으로 축약할이름() 이렇게만 써주면 indent 먹였던 . 긴코드가 다 실행이 됩니다.
define
정의하다
함수선언
함수를 정의하다
def 함수명(입력값=앞으로 넣을 데이터=매개변수):---선언구
실행구 ex) for문..
함수명() -----호출구
return 반환변수 (반환할데이터)
함수명으로 함수호출만 하면 기능을 계속 사용할 수 있다.
함수가 선언만 되고 사용하려면 함수 호출 함수명()을 해주어야 한다.
계속 for문을 만들어 쓸 필요 없이 함수만 가지고
입력값만 바꿔주면 된다 --같은 기능을 하니까
(함수의 장점 이자 함수를 사용하는 이유)
함수의용도2 마법의 모자 만들기
2를 집어 넣으면 4가 나오고
4를 집어 넣으면 6이 나오고
이렇게 +2를 해주는 기계가 가끔 필요하다
*2 를 해주는 기계도 가끔 필요하다
어떻게 만드냐
def 함수이름(인풋) :
인풋으로 뭐할지 여기에 작성
예를 들면 숫자를 집어넣으면 2를 더해주는 모자를 만들고 싶으면
이렇게 만들면 됩니다.
def 모자(숫자):
print(숫자 + 2)
def add_fun (x,y) :
return x - y
print('여기엔 뭘 넣어도 출력되지 않아요!')
print(add_fun(2,1)) #3
lambda
def 보다 간단하게 함수선언 가능
함수명 = lambda 매개변수 : 출력값
def numz (n1,n2):
return n1+n2
print(numz(1,2))
== 위아래 같은 의미의 코드
numz = lambda n1,n2 : n1+n2
print(numz(1,2))