혼공파 50 ~ 53강
1. 함수 매개변수 기본
# 매개변수 : 함수의 괄호안에 넣는 변수
## parameter : 함수 정의 때 넣는 변수
## 함수를 설계하는 사람
### 1. 함수의 설명서 -> 문서(documentation)
### 2. 예외 처리
def print_3_times(문자열, 횟수):
if type(문자열) != str:
print("첫 번째 매개변수는 문자열을 입력해야 합니다!")
if type(횟수) != int:
print("두 번째 매개변수는 정수를 입력해야 합니다!")
for i in range(횟수):
print(문자열)
## argument : 함수 호출 때 넣은 값
print_3_times("안녕", 10) # 함수를 호출(call)한다.
# parameter의 개수와 argument의 개수는 같아야 한다.
## TypeError 발생
# argument에서 함수 설계에 맞는 자료형을 넣어야 함.
2. 가변 매개변수 함수
# 가변 매개변수 함수 : 매개 변수의 개수가 가변적
print("안")
print("안", "녕")
print("안", "녕", "")
# 목표
# print_n_times(횟수, 출력대상, 출력대상, ...)
# print_n_times(2, "안녕", "하세요")
# 안녕
# 하세요
# 안녕
# 하세요
# 1단계
# print_n_times(횟수, [리스트])
# 2단계
# 리스트로 받고 싶은 자료를 * 연산자를 붙여
def print_n_times(횟수, *리스트):
for i in range(횟수):
for 요소 in 리스트:
print(요소)
print_n_times(2, ["안녕", "하세요"])
# 가변매개변수에 리스트 요소를 모두 사용하고 싶다면
# 리스트 전개연산자 *을 사용해서 가능하다
문자열목록 = ["안녕", "하세요"]
print_n_times(2, *문자열목록)
# 가변매개변수 뒤에는 일반매개변수가 올 수 없다.
# 이를 입력하기 위해서는 키워드 매개변수를 사용해야 한다.
def print_n_times(*리스트, 횟수):
for i in range(횟수):
for 요소 in 리스트:
print(요소)
print_n_times(*문자열목록, 횟수=2)
3. 기본 매개변수
# 기본 매개변수
# 함수 사용 시 매개변수를 입력하지 않을 때 기본 값을 지정
# 기본 매개변수는 다른 매개변수들 보다 뒤에 정의된다.
def test(a = 10, b = 20):
print(a)
test() # 10
test(20) # 20
# 키워드 매개변수 기본 매개변수
test(a = 30) # 30
def print_n_times(*values, n=2):
for i in range(n):
for value in values:
print(value)
print()
print_n_times("문자열", "안녕하세요", n=2)
# print() 함수 이해
print("안", "녕", "하", "세", "요") # 안 녕 하 세 요
print("안", "녕", "하", "세", "요", sep="::")
# 안::녕::하::세::요 sep의 기본 매개변수가 공백이었으나, 키워드 매개변수를 이용해 지정할 수 있음
print("안", "녕", "하", "세", "요", sep="::", end="")
print("안", "녕", "하", "세", "요", sep="::", end="")
# 안::녕::하::세::요안::녕::하::세::요
# end의 기본 매개변수는 /n으로 줄바꿈 되나 end에 키워드 매개변수를 아무것도 없이 지정하면 출 후에 줄바꿈되지 않는다
# 딕셔너리 매개변수
def 함수(*가변, **딕셔너리):
print(가변, 딕셔너리)
함수("안", "녕", "하", a=10, b=20, c=30)
# ('안', '녕', '하') {'a': 10, 'b': 20, 'c': 30}
# 가변 매개변수는 튜플로 자료를 묶어주고,
# 딕셔너리 매개변수는 key=value로 딕셔너리로 묶인다.
4. 리턴
def f(x):
# x = 1
# 값을 들고 돌아가라!
return x + 1
print(f(1)) # 2
print(f(2)) # 3
# def 함수(매개변수):
# 변수 = 초기화
# 여러가지 처리
# 여러가지 처리
# 여러가지 처리
# return 변수
def sum_all(start, end):
output = 0
for i in range(start, end + 1):
output += i
return output
print(sum_all(1, 100)) # 5050
def f(x):
return 2 * x + 1
print(f(10))
def mul(*values):
output = 1
for i in values:
output *= i
return output
print(mul(5, 7, 9, 10))
'Base > Python' 카테고리의 다른 글
14. 재귀함수 / 피보나치수열 / 조기리턴과 리스트 평탄화 (0) | 2023.03.01 |
---|---|
13. 메모리구조 / global 키워드 / 복사 (0) | 2023.02.27 |
11. 복잡도/프로그램/루틴/프로시저/메서드/함수 (0) | 2023.02.21 |
10. 리스트와 딕셔너리 관련 기본 함수 / 리스트 내포 / join함수 (1) | 2023.02.20 |
9. reversed() 함수 / while 반복문 / break / continue 키워드 (0) | 2023.02.18 |
댓글