함수 호출(function call)
라고 함매개변수
라고 함리턴값(return value)
이라고 부름len()
을 사용하면서 len()의 리턴값인 문자열(혹은 리스트)의 길이를 계속 받아와서 사용하고 있었음def <함수이름> (<매개변수, ...>):
<문장>
(return value)
def foo(m, n): # 전달받을 값을 가지는 변수 m, n == 매개변수
code
...
return n1[, n2, ...]
foo(3, 4) # foo라는 함수에 넘겨줄 값 3, 4 == 인자
def print_n_times(value, n):
for i in range(n):
print(value)
print_n_times("안녕하세요", 5)
안녕하세요
안녕하세요
안녕하세요
안녕하세요
안녕하세요
- Case 1. 매개변수 n 값이 입력되지 않은 경우
...
print_n_times('안녕하세요')
...
print_n_times('안녕하세요')
TypeError: print_n_times() missing 1 required positional arqument: 'n'
...
print_n_times('안녕하세요', 10, 20)
...
print_n_times('안녕하세요', 10, 20)
TypeError: print_n_times() takes 2 positional arguments but 2 were given
기본 매개변수
또는 디폴트 인자(default argument
라고 부름변수명 = 값
의 형태로 작성하면 해당 변수에 값이 할당되지 않더라도 에러메시지가 뜨지 않음가변 매개변수
라고 부름def <함수이름>(param1, param2, ..., <*가변매개변수>):
<문장>
def print_n_times(n=2, *values):
for i in range(n):
for value in values:
print(value)
print()
print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍")
def print_n_times(*values, n=2):
for i in range(n):
for value in values:
print(value)
print()
print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", 3)
키워드 매개변수
를 사용print(value, ..., sep=' ', end='\n', file=sys,stdout, flush=False)
def print_n_times(*values, n=2):
for i in range(n):
for value in values:
print(value)
print()
print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", n=3)
def test(a, b=10, c=100):
print(a + b + c)
test(10, 20, 30) # Case 1. 기본 형태
test(a=10, b=100, c=200) # Case 2. 키워드 매개변수로 모든 매개변수를 지정한 형태
test(c=10, a=100, b=200) # Case 3. 키워드 매개변수로 모든 매개변수를 마구잡이로 지정한 형태
test(10, c=200) # Case 4. 키워드 매개변수로 일부 매개변수만 지정한 형태
- 출력 결과
60
310
310
220
일반 매배견수
는 필수로 입력해하고, 순서에 맞게 입력하면 됨기본 매개변수
는 필요한 것만 키워드를 지정해서 입력하면 됨return
키워드를 사용하여 하나 이상의 값을 반환해줄 수 있음def return_test():
print("A 위치입니다.")
return
print("B 위치입니다.")
return_test()
- 실행 결과
A 위치입니다.
return
키워드는 함수를 실행했던 위치로 돌아가라는 의미와 함수를 여기서 끝내라는 의미를 모두 갖고 있음def return_test1():
return 100
def return_test2():
return 1, 2, 3
def return_test3():
return
value_test1 = return_test1()
print(value_test1)
a, b, c = return_test2()
d = return_test2()
print(a, b, c, d)
value_test3 = return_test3()
print(value_test3)
- 출력 결과
100
1 2 3 (1, 2, 3)
None
튜플
None
을 출력하며, VS Code에서는 경고문을 출력해줌def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
def fibonacci(n):
if n in [1, 2]:
return 1
else:
return fibonicci(n-1) + fibonacci(n-2)
>>>> abs(-100) # 절대값 반환 함수
100
>>>> min(200, 100, 300 ,500) # 여러 원소 중 최솟값 반환
100
>>>> max(200, 100, 300, 500) # 여러 원소 중 최댓값 반환
500
>>>> str1 = "FOO"
>>>> len(str1) # str1의 인자의 성분 개수 반환
3
>>>> sorted('EBACD') # 성분을 오름차순으로 정렬
['A', 'B', 'C', 'D', 'E']
>>>> list_a = [100, 300, 200, 700]
>>>> sorted(list_a)
[100, 200, 300, 700]
>>>> sorted(list_a, reverse=True) # 성분을 내림차순으로 정렬
[700, 300, 200, 100]
>>>> id(str1) # 파이썬의 객체는 서로를 구별하는 식별값(C에서는 주소값)을 갖는데, 이 식별값을 정수형으로 출력
4549938992
>>>> n = 300
>>>> id(n)
4549735536
>>>> type(n) # 해당 변수의 자료형 반환
<class 'int'>
>>>> type('HELLO')
<class 'str'>
>>>> chr(65) # 유니코드로 반환
'A'
>>>> ord('A') # 문자를 유니코드 값으로 반환
65
아래는 5월 중 작성 예정