함수를 만들어보자!
내장함수로 내가 원하는 역활을 하지 못했을 때는, 함수를 직접 만들어 사용 할 수 밖에 없다.
우선 함수를 만들기 위해서는
- 지정어 define
- 함수명
- 매개변수
- 실행할 코드
- 반환값
가 기본적으로 있어야 한다.
def myfunction(first_number, second_number):
first_number %= 2
second_number %= 3
result = first_number + second_number
print(result)
return result
여기서 볼 수 있듯이, 함수를 만들기 위해서는 조건을 달성 해야한다.
즉 함수명myfunction, 매개변수 first_number, second_number), 실행코드 와 반환값 return result 가 만족되어 이는 함수라고 할 수 있다.
매개변수
매개변수란 myfunction 함수에서 받기로 정해진 first_number와 second_number를 매개 변수 라고 한다.
이때, 함수를 불러 올때, 넣는 값은 인수가 된다. 즉 myfunction(1,2) 라면, 1과 2가 인수이다.
def myfunction(first_number, second_number):
function = myfunction(1,2)
반환값
반환값이란 return이다. 이말은 즉 함수를 돌렸을때 그 함수에 저장이 되어 있는 값을 말한다.
def cal (num1, num2):
result=(num1 * num2)
print(result)
return result
multiple = cal(2,5)
>> 10
이때, return인 반환값은 10이다.
다중 반환값
다중 반환 값이란, 매개변수가 2개 이상이거나 함수로 인하여 값이 여러개가 나오는 것을 의미한다.
def num (num1, num2)
print (num1)
print (num2)
return num1, num2
n1 = int(input("첫번째 숫자를 넣어주세요"))
n2 = int(input("두번째 숫자를 넣어주세요"))
num (n1, n2)
이런 코드라면, 값이 num1과 num2가 나오기 때문에 이를 다중 반환값 이라고 한다. 이때는 매개변수의 순서대로 값을 넣어야 한다.
반환값이 없는 함수
반환값이 없는 함수란, return을 생략하거나, 매개변수 없이 코드만 실행 시키는것을 뜻한다.
def test_function():
print("hello")
a = test_function()
>> hello
print(a)
>> none
a를 실행하면 프린트는 되지만 값이 저장되지 않는 휘발성이다. 따라서 이는 반환값이 없는 함수 라고 한다.
기본값
기본값이란, 인수를 넣지 못하거나 잘못넣었을때, 매개변수에서 기본적으로 세팅이 되어지는 값을 이야기한다.
def sayhi(name = "승열", age = 26):
print(f"안녕하세요, {name}님 {age}살이군요!")
username = str(input("이름을 알려주세요! : "))
userage = int(input("나이를 입력해주세요!(숫자만) : "))
sayhi(username, userage)
원래는 def sayhi (name, age)가 되어야 하지만 기본값을 집어 넣어서 만약 인수를 잘못 넣게 되었을때에도
기본값을 대신 표시해 주기 떄문에 오류가 줄어들 수 있다.
이에 결과는 만약 인풋을 넣지 않았자면, 승열, 26으로 나올 것이다.
가변 매개변수
가변 매개변수란 매개변수의 양을 정하지 않은 것을 뜻한다.
가변 매개변수는
- args 임의의 갯수의 값을 받기
- kwargs 인수들을 딕셔너리로 받기
args
args는 튜플의 형식으로 저장이된다.
def numbers (**args):
print(args)
return True
numbers(1,2,3,4,5)
kwargs
kwargs는 딕셔너리 방식으로 저장이 된다. (저장 타입은 튜플)
def person(**kwargs):
print(kwargs)
return True
person(name = "이승열", age = 26)
args and kwags
이때 args와 kwargs를 같이 쓸 수도 잇다.
def test(num1, num2, *args, **kwargs) :
print(num1, num2, args, kwargs)
return True
test(1,2,1,2,name="test", age=1)
>> 1 2 (1,2) {'name' : 'test', 'age' : 1}
이는 num1과 num2는 1자리의 숫자를 args리스트를 그리고 kwargs는 딕셔너리 형식으로 받기에, 그에 맞춰서 들어간다.
만약 데이터 값을 맞춰서 넣지 못하거나 순서가 틀리면 에러가 발생한다.
'용어정리 > Python' 카테고리의 다른 글
python 용어정리 (패키지) (0) | 2024.10.01 |
---|---|
python 용어정리 (모듈) (0) | 2024.10.01 |
python 용어정리 (내장함수) (0) | 2024.10.01 |
python 용어정리 (조건문) (0) | 2024.09.30 |
python 용어정리 (반복문) (0) | 2024.09.30 |