250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- mro()
- shuffle()
- randrange()
- node.js
- shutil
- discard()
- 오버라이딩
- zipfile
- MySQL
- __sub__
- __len__
- 파이썬
- glob
- MySqlDB
- fileinput
- decode()
- choice()
- locals()
- count()
- View
- items()
- remove()
- JS
- HTML
- inplace()
- __getitem__
- Database
- CSS
- fnmatch
- __annotations__
Archives
- Today
- Total
흰둥이는 코드를 짤 때 짖어 (왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!)
(파이썬) 사용자 정의 함수 본문
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