티스토리 뷰
[syntax]
def foo(a, b):
return a + b
print(foo(2, 3))
a, b 라는 매개 변수를 2개 가지고 있고 a+b 를 반환하는 함수이다.
여기서 foo 는 함수 이름이고 네이밍 컨벤션은 소문자와 구분자는 언더바로 한다.
1~2 라인은 함수의 정의이고 정의만으로는 함수가 실행되지 않는다.
5번째 줄에 함수가 호출되면 해당 함수가 동작한다.
[return]
def foo(a, b):
return a + b
print("end")
print(foo(2, 3))
return 을 만나는 즉시 함수는 종료 되므로
end 는 출력되지 않는다.
print 안에는 foo 의 리턴값인 5가 입력되서
최종적으로 5가 출력된다.
[매개변수, 위치]
def foo(a, b): ...
print(foo(2, 3))
함수를 정의할때 매개변수를 2개 입력 받으면
함수를 호출할 때도 2개의 매개변수를 맞게 넣어줘야한다.
매개변수의 갯수가 일치하지 않으면 TypeError 가 발생한다.
[매개변수 기본값]
def foo(a, b=0):
return a+b
print(foo(2))
함수를 정의할 때 매개변수의 기본값을 설정해 줄 수 있다.
기본값은 해당 인자를 입력하지 않을 때 사용된다.
foo 함수의 매개변수가 2개 가 될때는 b 의 기본값은 사용되지 않는다.
[타입 명시]
미리 정의된 매개변수, 리턴 타입이 아닐 경우
IDE 에서 해당 코드에 따로 표시를 해두어 노티를 해준다.
def foo(a: int, b: str, c: bool) -> tuple:
print(a, b, c)
return ["sdf", "sdf"]
foo("hello", 123, "@#4")
[args, kwargs]
함수에 매개변수들을 정해진 개수를 입력받지 않고 가변적으로 받는 방법을 알아보자
이것을 보기전에 packing, unpacking 을 먼저 알아보기 바란다
def foo(*args, **kwargs):
print(*args)
print(*kwargs)
foo(1, 2, 3, age=10, name="kim")
위와 같이 튜플과 딕셔너리를 가변적으로 받으면
개수에 상관없이 받을수 있다(아무 인자값도 없어도 된다)
결과는 다음과 같이 나온다
1 2 3
age name
[local variable]
def foo(n):
r = n * n
return r
함수 foo 에서 정의된 n, r 이라는 변수는 함수 foo 에서만 유효한
지역변수이다.
외부에서 만약 n, r 이라는 변수가 있다면 이것과 전혀 다른 이름만 똑같은 것이다
학교에서 A반 1번과, B반 1번은 같은 1번이지만 지역이 다른것과 비슷하다
'python lecture > basic' 카테고리의 다른 글
[edu] decorator 메소드 속성 유지 (0) | 2019.01.09 |
---|---|
[edu] decoraotr 인자 받기 (0) | 2019.01.09 |
[edu] Inheritance (상속, 오버라이딩) (0) | 2018.12.23 |
[edu] 2진 탐색 (0) | 2018.12.12 |
[edu] 메모리 영역(코드, 데이터, 스택, 힙) (0) | 2018.12.01 |
- Total
- Today
- Yesterday
- 장고 플러스친구 자동응답
- virtualenv
- 면접정답
- 파이썬 독학
- Python
- Tistory
- 문과 코딩
- django
- GIT
- 파이썬
- 모바일 테마 적용
- pycrypto
- django chatbot
- 파이썬 강좌
- 장고 카톡 자동응답
- 면접답변
- 플러스친구 자동응답
- PuTTYGen
- 파이썬 입문
- gitlab
- gitignore
- chatbot
- 장고
- wsgi
- 문서 비교
- 이미지 비교
- 모바일 스킨 적용
- 파이썬 프로그래밍
- 엑셀 비교
- admin.py
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |