흰둥이는 코드를 짤 때 짖어 (왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!)

(파이썬) 사용자 정의 함수 본문

파이썬 기초

(파이썬) 사용자 정의 함수

흰둥아솜사탕 2023. 3. 8. 17:46
728x90
반응형

1. 함수

  • 변수 x, y에 대한 x값이 정해지면 그에 따라 y값을 결정하는 것
  • 반복적으로 사용되는 가치있는 부분을 묶어서 하나의 집합으로 만듬
  • 코드를 대활용하기 위한 목적

1-1. 이름만 있는 함수

def 함수면():
  함수가 호출되면 실행할 문장
  ...
함수명() # 호출

In [1]:

def func1():
  print('처음으로 만드는 함수!')

In [2]:

func1()
처음으로 만드는 함수!

In [3]:

for i in range(5):
  func1()
처음으로 만드는 함수!
처음으로 만드는 함수!
처음으로 만드는 함수!
처음으로 만드는 함수!
처음으로 만드는 함수!

1-2. 매개변수가 있는 함수

def 함수명(변수1, 변수2, ...)
  함수가 호출되면 실행할 문장
  ...
함수명(값1, 값2, ...) # 호출

In [4]:

def func2(num):
  print(f'입력받은 숫자: {num}')

In [5]:

func2(10)
입력받은 숫자: 10

In [6]:

func2(4)
입력받은 숫자: 4

In [7]:

def func3(start, end):
  sum = 0
  for i in range(start, end+1):
    sum += i
  print(f'{start}부터 {end}까지의 합: {sum}')

In [8]:

func3(1, 10)
1부터 10까지의 합: 55

In [9]:

func3(1, 100)
1부터 100까지의 합: 5050

1-3. 리턴값이 있는 함수

def 함수명(변수1, 변수2 ...)
  함수가 호출되면 실행할 문장
  ...
  return 값
함수명(값1, 값2 ...) # 호출

In [10]:

def func4():
  print('안녕하세요 Python')

In [11]:

a = func4()
print(f'a에 저장된 값: {a}')
안녕하세요 Python
a에 저장된 값: None

In [13]:

def func5():
  return '🎁'

In [14]:

presents = func5()
print(f'presents에 저장된 값: {presents}')
presents에 저장된 값: 🎁

In [15]:

def func6(num1, num2):
  sum = num1 + num2
  return sum

In [16]:

result = func6(10) # TypeError: func6() missing 1 required positional argument: 'num2'
print(result)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-16-88a7f2c4ef71> in <module>
----> 1 result = func6(10)
      2 print(result)

TypeError: func6() missing 1 required positional argument: 'num2'

In [19]:

result = func6(10, 5)
print(result)
print(sum)
print(num1)
print(num2)
15
<built-in function sum>
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-19-c2c1984f9e62> in <module>
      2 print(result)
      3 print(sum)
----> 4 print(num1)
      5 print(num2)

NameError: name 'num1' is not defined

1-4. 디폴트 매개변수

def( 함수명(변수1 = 값1, 변수2 = 값2 ...)
  함수가 호출되면 실행할 문장
  ...
  return 값
변수 = 함수명(값1, 값2 ...) # 호출 변수 = 함수명() # 호출

In [22]:

print(func6())  # TypeError: func6() missing 2 required positional arguments: 'num1' and 'num2'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-22-a467b4bd42cd> in <module>
----> 1 print(func6())

TypeError: func6() missing 2 required positional arguments: 'num1' and 'num2'

In [32]:

def func6(num1 = 1, num2 = 1):
  sum = num1 + num2
  return sum

In [24]:

print(func6())
2
- 함수 선언할 때 매개변수 값에 미리 값을 줄 경우 함수를 매개변수 없이 호출할 때 에러가 아닌 미리 정한 default값이 적용된다.

In [25]:

print(func6(10, 5))
15
- default값이 있어도 함수를 호출할 때 매개 변수를 사용자가 지정할 수 있다.

In [28]:

result = func6(7, 3)
print(result)
10

1-5. 매개변수의 개수가 가변적인 함수

def( 함수명(*변수)
  함수가 호출되면 실행할 문장
  ...
  return 값
변수 = 함수명(값1, 값2 ...) # 호출
변수 = 함수명(값1) # 호출
변수 = 함수명() # 호출
가변적인 매개 변수를 전달할 경우 함수안에서 튜플형태로 사용

 

In [37]:

def func7(*args):
  result = 0
  # print(args)
  for i in args:
    result += i
  return result

In [39]:

print(func7())
print(func7(10, 30, 20, 70))
print(func7(10))
0
130
10
- 함수 선언시 매개변수 앞에 *을 붙이면 매개변수를 튜플 형태로 여러 개 받을 수 있다.

1-6. 매개변수를 딕셔너리 구조로 전달받는 함수

def 함수명(**변수):
  함수가 호출되면 실행할 문장
  ...
  return 값
변수 = 함수명(변수1=값1, 변수2=값2 ...) # 호출
디폴트 매개변수는 첫번째 매개변수에만 적용된다.

 

In [41]:

def func8(id, name, age):
  print(f'아이디: {id}')
  print(f'이름: {name}')
  print(f'나이: {age}')

In [42]:

# 매개변수명과 딕셔너리의 키가 같아야함
# 딕셔너리의 키는 반드시 문자열 형태태
dic1 = {'id':'apple', 'name':'김사과', 'age':20}

In [43]:

func8(**dic1)
아이디: apple
이름: 김사과
나이: 20

In [44]:

# *의 데이터를 보낼 경우 키가 저장
func8(*dic1)
아이디: id
이름: name
나이: age

In [53]:

def func9(**args):
  # print(args)
  for i in args:
    if i == 'id':
      id = args[i]
    return id

In [54]:

user = func9(id='apple', name='김사과', age=20)
print(user)
apple

1-7. 리턴값이 여러개인 함수

def 함수명(변수1, 변수2 ...):
  함수가 호출되면 실행할 문장
  ...
  return 값1, 값2, ...
변수1, 변수2 ... = 함수면(변수1, 변수2 ...) # 호출

In [58]:

def func10(num1, num2):
  return num1 + num2, num1 - num2, num1 * num2, num1 / num2

In [60]:

result1, result2, result3, result4 = func10(10, 3)

In [61]:

print(f'덧셈: {result1}, 뺄셈: {result2}, 곱셈: {result3}, 나눗셈: {result4}')
덧셈: 13, 뺄셈: 7, 곱셈: 30, 나눗셈: 3.3333333333333335

In [63]:

_, _, result3, _ = func10(10, 3) # 곱셈의 결과만 필요할 때
print(result3)
30
728x90
반응형

'파이썬 기초' 카테고리의 다른 글

(파이썬) Callback 함수와 Lambda 함수  (0) 2023.03.09
(파이썬) 변수의 범위  (0) 2023.03.09
(파이썬) 세트  (0) 2023.03.08
(파이썬) 딕셔너리  (0) 2023.03.08
(파이썬) 반복문  (0) 2023.03.07
Comments