아래 내용은 점프 투 파이썬 책을 보고 정리한 내용입니다!
입출력은 프로그램의 설계와 관련되어 가장 중요한 부분이다.
1. 특정 프로그램에서만 사용하는 함수를 만들 것인지
2. 모든 프로그램이 공통으로 사용하는 함수를 만들 것인지
3. 더 나아가 오픈 API로 공개하여 외부 프로그램도 사용할 수 있게 만들 것인지
위의 요소를 결정하는 것은 입출력과 관련이 있다!
함수란?
입력값을 가지고 어떤 일을 수행한 다음에 결과물을 내어놓는 것.
함수를 사용하는 이유는?
1. 프로그래밍 중 똑같은 내용을 반복 작성할 때
2. 프로그램을 함수화하면 프로그램 흐름을 일목요연하게 볼 수 있기 때문
파이썬 함수의 구조
def 함수 이름(매개변수):
수행할 문장 1
수행할 문장 2
- def : 함수를 만들 때 사용하는 예약어
- 함수 이름 : 사용자가 임의로 설정 가능
- 매개변수 : 함수에 입력으로 전달되는 값을 받는 변수
함수를 작성해보자!
def add(a,b):
return a + b
- 코드 설명 : 이 함수의 이름은 add이고 입력으로 2개의 값을 받으며 결괏값은 2개의 입력값을 더한 값이다.
함수를 사용해보자!
def add(a,b):
return a + b
print(add(3, 4))
변수 a에 3, b에 4를 대입한 후 add 함수에 a와 b를 입력값으로 넣어준다.
그리고 결과를 출력한다.
매개변수와 인수
매개변수(parameter)와 인수(arguments)를 혼용해서 사용하지 말자
매개변수 : 함수에 입력으로 전달된 값을 받는 변수
인수 : 함수를 호출할 때 전달하는 입력값
def add(a,b): <-- a, b는 매개변수
return a + b
print(add(3, 4)) <-- 3, 4,는 인수
입력값과 결괏값에 따른 함수의 형태 4가지를 살펴보자
1. 일반적인 함수
2. 입력값이 없는 함수
3. 결괏값이 없는 함수
4. 입력값도 결괏값도 없는 함수
1. 일반적인 함수 : 입력값과 결과값이 있는 함수
add 함수는 2개의 입력값을 받아 서로 더한 결괏값을 돌려준다.
def add(a,b):
result = a + b
return result
일반적인 함수를 사용하여 결괏값을 돌려받아 보자. 7이 출력된다.
def add(a,b):
result = a + b
return result
a = add(3, 4)
print(a)
2. 입력값이 없는 함수
say 라는 함수를 만들었다.
괄호 안의 매개변수 부분이 비어있다.
def say():
return 'Hi'
입력값이 없는 함수를 사용해보자. Hi가 출력된다.
def say():
return 'Hi'
a = say()
print(a)
--> 위 함수를 쓰기 위해서는 say()처럼 괄호 안에 아무 값도 넣지 않아야 한다. 이처럼 입력값은 없지만 결괏값으로 문자열 Hi를 돌려준다.
3. 결괏값이 없는 함수
def add(a, b):
print("%d, %d의 합은 %d입니다." % (a, b, a+b))
결괏값이 없는 함수를 사용해보자. '3, 4의 합은 7입니다.' 가 출력된다.
결괏값이 없는 함수는 호출해도 돌려주는 값이 없기 때문에 다음과 같이 사용한다.
def add(a, b):
print("%d, %d의 합은 %d입니다." % (a, b, a+b))
add(3, 4)
결과값이 진짜 없는지 확인해보자. None이 출력된다.
def add(a, b):
print("%d, %d의 합은 %d입니다." % (a, b, a+b))
a = add(3, 4)
print(a)
--> 결과값은 오직 return 명령어로만 돌려받을 수 있다. print문은 함수의 구성 요소 중 하나인 <수행할 문장>에 해당하는 부분일 뿐이다.
4. 입력값도 결괏값도 없는 함수
def say():
print("Hi")
입력값도 결괏값도 없는 함수를 사용해보자. Hi가 출력된다.
def say():
print("Hi")
say()
끝><
'Python' 카테고리의 다른 글
Python 함수의 return에 대해 알아보자! (0) | 2022.06.25 |
---|---|
Python 매개변수 *args, **kwargs 사용해보기 (0) | 2022.06.22 |
6. 모듈과 패키지_절대 경로와 상대 경로의 Import (0) | 2022.06.07 |
6. 모듈과 패키지_import 문과 AS (0) | 2022.06.07 |
6. 모듈과 패키지_커맨드라인 인수 (0) | 2022.06.07 |