파이썬 def 함수 문법, 언제 쓰는 걸까?
def는 함수를 만들 때 사용하는 예약어이며, 함수 이름은 함수를 만드는 사람이 임의로 만들 수 있다. 함수 이름 뒤 괄호 안의 매개변수는 이 함수에 입력으로 전달되는 값을 받는 변수이다. def를 사용하면 파이썬이 "이제 함수를 정의하겠구나"하고 인식하게 된다.
그리고 함수에는 입력값이 있고 출력값이 있다.
- 함수의 용도 1. 긴 코드를 짧게 축약할 때 사용한다.
- 함수의 용도 2. 곱하기 제곱하기등 계산해 다른 결과물 만들 때 사용한다.
- 함수의 용도 3. Return 내뱉기
함수의 용도 1. 긴 코드를 짧게 축약할 때 사용한다.
예시로, 3이라는 숫자가 홀수 혹은 짝수인지 알고 싶다고 하자. 어떻게 하면 될까?
(1) 주어진 정보, (2) 규칙, (3) 출력 세 가지로 간단히 쓰는 방법이 있다. 3이라는 숫자가 if 만약 2로 나누어서 % ==0 이면 짝수고 아니면 else 홀수라고 출력해 줘-라고규칙을 result에 만들고 홀수, 짝수 이런 식으로 말고, '{3}번은 {홀수/짝수}입니다' 이런식으로 print 해서 알려줘라고 할 수 있다.
즉 자주 쓰이는 긴 코드가 있다면 그걸 짧은 한 단어로 축약하고 싶을 때 쓰는 것이다.
파이썬 꿀팁: 긴 글 줄여 쓰기 참고하자.
함수의 용도 2. 곱하기 제곱하기등 계산해 다른 결과물 만들기
예를 들어, a_list에 [1, 3, 2, 5, 1, 2] 같은 값들이 있다고 할 때, 비어있는 b_list에 [2, 6, 4, 10, 2, 4] 같이 2배의 값으로 출력되도록 요청하고 싶다면. 어떻게 하면 될까?
간단히, 각 숫자 a에 2를 곱하면(a*2)된다. a_list에 있는 숫자 [1]을 2배 한 값, [3]을 2배 한 값, [5]를 두배한 값을 출력해 오면 되니, 먼저 list를 쓸 때 사용하는 [] 괄호를 사용하고, 원하는 b_list의 공식을 다음과 같이 만들어주자.
2를 집어넣으면 4가 나오고
4를 집어넣으면 6이 나오고
이렇게 +2를 해주는 기계가 가끔 필요하다
가끔은 * 2 해주는 기계도 가끔 필요하기 마련이다.
함수의 용도 3. Return 내뱉기
프린트와 리턴의 차이가 무엇일까?
(1) 프린트는 결괏값을 출력해서 프린트로 뽑아 종이로 본다고 이해하면, 리턴은 단순히 화면에 출력하는 기는만 있다.print는 출력 값을 보여주는 기능이며, 출력 값 생성을 위해 함수를 호출하게 된다.
(2) return은 함수를 대체할 수 있다. 하지만 print는 함수를 대체할 수 없다. return은 정의된 함수에 대한 호출이 있을 때 값을 반환시켜 주는 기능이다.
(2) 모든 함수는 어떤 값을 return 해야 한다. 이때 함수 내에 반환값인 return이 정의되지 않은 경우 None을 결과 값으로 준다. 결괏값 None 은 def 함수가 모두 실행되었지만 return에 대한 정의가 없어 반환한 값이다.
'개발일기 [Python 파이썬]' 카테고리의 다른 글
[Python game] 파이썬으로 게임 만들기 class 사용하기 (0) | 2024.02.20 |
---|---|
[Python map, filter, lambda] 파이썬 맵, 람다, 필터 (0) | 2024.02.20 |
[Python 기호] 파이썬에 자주 사용되는 기호들: {} [] "" '' : (0) | 2024.02.20 |
파이썬 꿀팁: 긴 코드 한줄로 줄여쓰기 (2) | 2024.02.20 |
[Pycharm import ] 파이참에서 파일 분리하기, 불러오기 (0) | 2024.02.19 |