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