사용자 정의 함수
사용자 정의 함수란 사용자가 직접 작성한 함수이다. 사용자의 요구사항에 맞게 동작하는 함수를 직접 모듈화하여 논리를 더 명확하게 구조화하여 가독성을 높이기 위해 사용한다.
기본적인 구조
def 함수명(매개변수1, 매개변수2, ...):
# 함수 내용
return 결과값
매개변수와반환 값이 없는 함수
def func1():
print('처음으로 만드는 함수!')
func1()
func1()
print()
for i in range(5):
func1()
매개변수가 있고 반환 값이 없는 함수
def func2(num):
print(f'입력받은 숫자: {num}')
def func3(start, end):
sum = 0
for i in range(start, end + 1):
sum += i
print(f'{start}부터 {end}까지의 합: {sum}')
func2(10)
func2(4)
func3(1, 10)
func3(1, 100)
반환 값이 있는 함수
def func4():
print('안녕하세요 python')
def func5():
return '🍕'
def func6(num1, num2):
sum = num1 + num2
return sum
a = func4()
print(f'a에 저장된 값: {a}')
presents = func5()
print(f'present에 저장된 값: {presents}')
result = func6(10, 5)
print(result)
기본값이 설정된 매개변수
def func6(num1=1, num2=1):
sum = num1 + num2
return sum
print(func6())
print(func6(10, 5))
result = func6(7, 3)
print(result)
가변 매개변수
# 함수 내에서는 매개변수를 튜플로 처리
def func7(*args):
result = 0
print(args)
for i in args:
result += i
return result
print(func7(), end='\n\n')
print(func7(10, 30, 20, 70), end='\n\n')
print(func7(10), end='\n\n')
키워드 매개변수
def func8(id, age, name): # 매개변수 순서 유의
print(f'아이디: {id}')
print(f'이름: {name}')
print(f'나이: {age}')
dic1 = {'id':'apple', 'name':'김사과', 'age':20}
func8(id='apple', name='김사과', age=20)
print()
func8(**dic1)
print()
func8(*dic1)
키워드 매개변수는 각 매개변수의 '이름'을 함께 지정하여 인수를 전달하는 방식이다. 기존 함수는 매개변수의 순서에 주의해야 했다면 키워드 매개변수는 함수를 호출할 때 키워드를 지정해주기 때문에 순서가 상관이 없다.
또한 key:value 형식의 딕셔너리를 인자로 사용할 수 있다. 이때 **dic1 와 같이 '**'을 앞에 붙여준다.
'*' 하나만 붙이면 key값만 인자로 넘어간다. 이때는 키워드의 의미가 없어지므로 순서가 상관이 있게 된다.
def func9(**args):
for i in args:
if i == 'id':
id = args[i]
return id
user = func9(id='apple', name='김사과', age=20)
print(user)
가변인자 형식으로 매개변수 설정을 한다면 호출 인자의 키워드 그대로 변수가 된다.
여러개의 반환 값
def func10(num1, num2):
return num1 + num2, num1 - num2, num1 * num2, num1 / num2
result1, result2, result3, result4 = func10(10, 3)
print(f'덧셈: {result1}, 뺄셈: {result2}, 곱셈: {result3}, 나눗셈: {result4}')
_, _, result3, _ = func10(10, 3)
print(result3)
이번엔 반환값이 여러개인 경우이다. return 뒤에 쉼표를 구분으로 여러개의 반환값을 가질 수 있다.
이때 반환된 값들을 여러 변수에 저장할 수 있다.
또한, 원하는 반환값만 저장할 수도 있다.
'파이썬 > 기본' 카테고리의 다른 글
[파이썬] 함수와 메모리 (0) | 2023.09.11 |
---|---|
[파이썬] None (0) | 2023.09.11 |
[파이썬][응용]로또번호 추천 - random() 공부 (1) | 2023.09.11 |
[파이썬][응용]가위바위보게임 - random() 공부 (0) | 2023.09.11 |
[파이썬] 랜덤 모듈 (0) | 2023.09.11 |
댓글