study with Q - 파이썬
50 - 함수, 매개변수 기본
quaquaz
2024. 6. 2. 18:15
# 외워...!
~기본적인 함수~
def p_3_ts():
print("hey")
print("hey")
print("hey")
# 그리고 함수를 호출(call)하면
p_3_ts()
>>>
hey
hey
hey
# 파이썬에서 매개변수
: 함수의 괄호 안에 넣는 변수
def f_str(str):
print(str)
print(str)
print(str)
f_str("seven")
>>>
seven
seven
seven
# parameter(매개변수) : 함수 정의 때 넣은 변수 (위에서 str)
# argument(인수) : 함수 호출 때 넣은 값 (위에서 seven)
# 문자열과 횟수도 넣을 수 있어요
# parameter
def prt(str, times):
for i in range(times) :
print(str)
# argument
prt("독도는 한국 땅",5)
>>>
독도는 한국 땅
독도는 한국 땅
독도는 한국 땅
독도는 한국 땅
독도는 한국 땅
# 매개변수와 관련된 오류
: (1) #함수를 만들 때 넣은 매개변수 != #함수를 호출할 때 넣은 매개변수 수
1-1) #parameter > #argument
→ TypeError: prt() missing 1 required positional argument: 'times'
1-2) #parameter < #argument
→ TypeError: prt() takes 2 positional arguments but 3 were given
: (2) 적합하지 않은 자료형을 넣었을 때
1-2) 횟수에 문자열을 넣으면
→ range 부분에서 오류 발생
# parameter
def prt(str, times):
for i in range(times) :
print(str)
# argument
prt("독도는 한국 땅","3")
>>>
TypeError: 'str' object cannot be interpreted as an integer
함수를 설계하는 사람과 사용하는 사람이 다른 경우가 많으므로...
# 함수 설계시에는
: (1) 함수의 설명서 aka 문서(documentation)을 잘 작성해두어야 하고
: (2) 예외처리를 해두는 것이 좋다 (방어 코드 같은 건가)
# 예외처리 코드를 심으면 이렇습니다요
def prt(stri, tms):
if type(stri) != str:
print("첫 번째 매개변수는 문자열로 입력하세요.")
if type(tms) != int :
print("두 번째 매개변수는 정수로 입력하세요.")
for i in range(tms) :
print(stri)
prt("문자열","3")
>>>
두 번째 매개변수는 정수로 입력하세요.
Traceback (most recent call last):
File "/home/runner/function/main.py", line 41, in <module>
prt("문자열","3")
File "/home/runner/function/main.py", line 37, in prt
for i in range(tms) :
TypeError: 'str' object cannot be interpreted as an integer