Language/Python
Py_07. 함수
Sumni Life
2021. 5. 24. 12:26
함수
01. 함수의 종류
1. 내장함수(빌트인함수) : 파이썬에 포함된 함수
ex) print, range 등등 어떤 준비도 필요없이 사용가능한 함수
2. 모듈의 함수 : 비슷한 함수끼리 묶어논 것
3. 사용자 정의 함수 : 우리가 함수를 직접 만들어서 사용하는 함수
02. 함수의 기본 구조
- 함수는 들어온 입력값을 받아 어떤 처리를 하여 적절한 결괏값을 돌려준다.
- 입력값 -----> 함수 -----> 결과값
함수를 만들때에는 def라는 키워드를 사용한다.
인수 = 입력 값 (함수가 받는 값)
- return = 반환값을 돌려준다.(함수가 돌려주는 값)
def 함수_이름(인수) :
실행할 _명령
return 반환값
[ my_func() 함수를 사용해 문자열을 출력하는 코드 ]
def my_func():
print('토끼야 안녕!')
my_func()
my_func()
>> 토끼야 안녕!
토끼야 안녕!
--
[ add() 함수를 사용해 두 개의 숫자를 더하는 코드 ]
def add(num1, num2):
return num1 + num2
print(add(2,3))
>> 5
[ add_mul() 함수를 사용해 두 개의 숫자를 더하고, 곱하는 코드 ]
- add = 더하기
- mul = 곱하기
def add_mul(num1,num2):
return num1+ num2, num1 * num2
print(add_mul(2,3))
>> (5, 6)
→ 튜플로 묶어서 패킹을해서 돌려줌.
03. 매개변수와 인수
매개변수와 인수는 혼용해서 사용되는 헷갈리는 용어
매개변수란?
- 함수에 입력으로 전달된 값을 받는 변수
인수란?
- 함수를 호출할 때 전달하는 입력값을 의미한다.
def add(a,b): #a, b는 매개변수
return a + b
print(add(3,4)) #3, 4는 인수
04. 입력값과 결괏값에 따른 함수의 형태
1. 일반적인 함수
- 결괏값을 받을 변수 = 함수이름(입력인수1, 입력인수2, ...)
def add(a, b):
result = a + b
return result
a = add(3, 4)
print (a)
>> 7
2. 입력값이 없는 함수
- 입력값이 없고 결괏값만 있는 함수
- 결괏값을 받을 변수 = 함수이름()
def say():
return 'hi'
a = say()
print(a)
>> hi
3. 결과값이 없는 함수
- 결과값이 없는 함수 = 호출값 X
- 함수이름(입력인수1, 입력인수2, ...)
def add(a,b): print("%d, %d의 합은 %d입니다." % ( a, b, a+b) )
a = add(3, 4) >> 3, 4의 합은 7입니다.
print(a) >> None
4. 입력값도 결과값도 없는 함수
- 입력 인수를 받는 매개변수(X) 없고, return문(X) 없는 함수
- 함수이름()
```python
def say():
print('hi')
say()
>> hi
05. 매개변수 지정하여 호출하기
- 함수를 호출할 때 매개변수를 지정할 수도 있다.
[ 구조 ]>>> def add(a, b): ... return a+b ...
[ add() 함수로 예시 ]
```python
number = add(a=3, b=7) # a에 3, b에 7를 전달
print(number)
>> 이렇게 매개변수를 지정하면 순서와 상관없이 사용할 수 있다.
number = add(b=5, a=3) # b에 5, a에 3를 전달
print(number)
06. 입력값 갯수를 모를 때 어떻게 해야하나????
- 입력값이 여러개일 때 그 값들을 모두 더해주는 함수 = add()
- But, 갯수가 몇 개인지 모를 때 사용
[ 구조 ]
def 함수이름(*매개변수):
<수행할 문장>
...
- 괄호 안의 매개변수 부분이 * 매개변수로 바뀌었다.
[ 여러 개의 입력값을 받는 함수 만들기 ]
def add_many(*args):
age = 0
for i in args:
age = age + i
return age
age = add_many(16,24,43,47)
print(age)
>> 130
def add_mul(choice, *args):
if choice =="add":
age = 0
for i in args:
age = age + i
elif choice == "mul":
age = 1
for i in args:
age = age * i
return age
age = add_mul('add', 16,18,42,45)
print(age)
>> 121
age = add_mul('mul', 16,18,42,45)
print(age)
>> 544320