13. 사용자 정의 함수
2024. 9. 26. 21:26ㆍ파이썬(python)
1.사용자 정의 함수
* 사용자 정의 함수란 사용자가 특정 작업을 수행하기 위해 직접 작성한 함수를 의미합니다.
* 파이썬에는 많은 내장 함수들이 있지만, 때로는 우리의 요구사항에 맞게 동작하는 함수를 직접 만들어야 할 때가 있습니다.
* 이때 사용자 정의 함수를 작성하게 됩니다.
* 기본적인 구조는 아래와 같습니다.
#####################################
def 함수명(매개변수1, 매개변수2, ...):
# 함수 내용
return 결과값
########################
1-1. 매개변수와 반환값이 없는 함수
1)
def func1():
print('처음으로 하는 함수 ')
func1()
func1()
-->
처음으로 하는 함수
처음으로 하는 함수
2)
for i in range(5): #func1()이 5번 돈다
func1()
-->
처음으로 하는 함수
처음으로 하는 함수
처음으로 하는 함수
처음으로 하는 함수
처음으로 하는 함수
1-2.매개변수가 있고 반환값이 없는 함수
1)
def func1():
print('처음으로 하는 함수 ')
print(func1()) ##반환값이 없어서 None
-->
처음으로 하는 함수
None
2)
def func2(num):
print(f'입력 받은 숫자 : {num}')
func2(100)
func2(5)
-->
입력 받은 숫자 : 100
입력 받은 숫자 : 5
3)
def func3(start, end):
sum = 0
for i in range(start, end+1):
sum += i
print(f'{start}부터 {end}까지의 합: {sum}')
func3(1, 10)
func3(1, 100)
-->
1부터 10까지의 합:55
1부터 100까지의 합: 5050
1-3.반환값이 있는 함수
1)
def func1():
print('처음으로 만드는 함수')
func1()
temp = func1()
print(temp) #temp는 None 출력 t emp에 저장된 값
-->
처음으로 하는 함수
처음으로 하는 함수
None
2)
temp = func1
print(temp) # temp에 저장된 값
-->
<function func1 at 0x7b77c1dd2cb0>
3)
def func4():
return '🎁'
print(func4())
-->
🎁
4)
temp = func4
print(f'temp에 저장된 값 {temp}')
-->
temp에 저장된 값 <function func4 at 0x7b77c1c80790>
5)
def func5(num1, num2):
sum = num1 + num2
return sum
print(func5(10,5))
temp = func5(4, 3)
print(temp)
-->
15
7
1-4. 기본값이 설정된 매개변수
1)
def func6(num1=0, num2=0):
sum = num1 + num2
return sum
print(func6())
print(func6(10))
print(func6(num2=3)) ##num2에만 3을 넣고싶은경우
-->
0
13
3
1-5. 가변 매개변수
함수를 호출할 때 * 를 사용하면 시퀀스(리스트, 튜플 등)의 요소를 개별적인 위치 인자로 풀어서 전달할 수 있습니다.
1)
def func7(*args):
return args
print(func7())
print(func7(10)) ##결과는 10, 튜플이라는 뜻
print(func7(10, 30, 50))
-->
()
(10,)
(10,30,50)
1-6. 키워드 매개변수
1)
def func8(id, name, age):
print(f'아이디 : {id}')
print(f'이름 : {name}')
print(f'나이 : {age}')
func8('apple', '김사과', 20)
-->
아이디 : apple
이름 : 김사과
나이 : 20
2)
def func8(id, name, age):
print(f'아이디 : {id}')
print(f'이름 : {name}')
print(f'나이 : {age}')
func8(age=30, id='orange', name='오렌지')
-->
아이디 : orange
이름 : 오렌지
나이 : 30
3)
def func8(id, name, age):
print(f'아이디 : {id}')
print(f'이름 : {name}')
print(f'나이 : {age}')
dic1 = {'age':25, 'id' :'banana', 'name':'반하나'}
func8(**dic1)
-->
아이디 : banana
이름 : 반하나
나이 : 25
4)
def func8(id, name, age):
print(f'아이디 : {id}')
print(f'이름 : {name}')
print(f'나이 : {age}')
dic1 = {'age':25, 'id' :'banana', 'name':'반하나'}
func8(*dic1) #키의 값을 반환
-->
아이디 : age
이름 : id
나이 : name
1-7.여러개의 반환값
1)
def func6(num1=0, num2=0):
sum = num1 + num2
return sum
result1 = func6(10, 3)
print(result1)
#만약 사칙연산을 모두 구하고 싶다면?
-->13
2)
def func9(num1=0, num2=0):
return num1+num2, num1-num2, num1*num2, num1/num2
result1, result2, result3, result4 = func9(10, 3)
print(f'덧셈:{result1}')
print(f'뺄셈:{result2}')
print(f'곱셈:{result3}')
print(f'나눗셈:{result4}')
-->
덧셈:13
뺄셈:7
곱셈:30
나눗셈:3.3333333333333335
3)
def func9(num1=0, num2=0):
return num1+num2, num1-num2, num1*num2, num1/num2
result1, result2, result3, result4 = func9(10, 3)
_, _, result3, _ = func9(10,3) #곱셈의 결과만 필요할때
print(f'곱셈 : {result3}')
-->
곱셈 : 30
4)
li1 = [10, 20, 30, 40, 50]
for i,v in enumerate(li1):
print(f'값 : {v}')
-->
값 : 10
값 : 20
값 : 30
값 : 40
값 : 50
※None의 특징
* None은 파이썬에서 특별한 값으로, 아무런 값이 없음을 표현하는데 사용됩니다.
* 다른 언어에서의 null 또는 nil과 유사한 개념입니다.
* None은 파이썬의 내장 상수이며, 그 자체로 데이터 타입이 NoneType입니다.
* 모든 None은 동일하므로, 두개의 None 값을 비교할때 항상 True를 반환합니다.
1)
num = None
print(num)
-->
None
2)
def func10(num):
if num >= 10:
return num
print(func10(10))
print(func10(5))
-->
10
None
3)
def func11(num=None):
if num is None:
print('전달된 값이 없습니다.')
else:
print(num)
func11(10)
func11()
-->
10
전달된 값이 없습니다.
4)
num = None
#None
if num is None: #주소 ##이것 추천
print('num의 값은 없습니다.')
if num == None: #값
print('num의 값은 없습니다.')
-->
num의 값은 없습니다.
num의 값은 없습니다.
5)
str1 = 'Hello'
str2 = 'Hello'
result1 = str1 is str2
print(result1)
li1 = [1,2,3,4,5]
li2 = [1,2,3,4,5]
result2 = li1 is li2
print(result2)
#값 비교
result2 = li1 == li2
print(result2)
-->
True
False
True
728x90
LIST
'파이썬(python)' 카테고리의 다른 글
15. 콜백 함수 & 람다 함수 (2) | 2024.09.27 |
---|---|
14. 변수의 범위 (2) | 2024.09.27 |
12. 컬렉션 & 반복문 (2) | 2024.09.26 |
11. 제어문-반복문 (3) | 2024.09.26 |
10. 제어문-조건문 (2) | 2024.09.25 |