사용자 정의 함수
사용자 정의 함수란 사용자가 특정 작업을 수행하기 위해 직접 작성한 함수를 의미합니다. 파이썬에는 많은 내장 함수들이 있지만, 때로는 우리의 요구사항에 맞게 동작하는 함수를 직접 만들어야 할 때가 있습니다. 이때 사용자 정의 함수를 작성하게 됩니다. 기본적인 구조는 아래와 같습니다.
def 함수명(매개변수1, 매개변수2, ...):
함수가 실행될 때 실행할 문자
reyurn 결과값
-매개변수와 반환 값이 없는 함수
def func1():
print('처음으로 만드는 함수!')
func1()
func1()
func1()
처음으로 만드는 함수!
처음으로 만드는 함수!
처음으로 만드는 함수!
for i in range(5):
func1()
처음으로 만드는 함수!
처음으로 만드는 함수!
처음으로 만드는 함수!
처음으로 만드는 함수!
처음으로 만드는 함수!
for문처럼 이용하여 반복하여 수행할 수 있다.
-매개변수가 있고 반환 값이 없는 함수
def func2(num):
print(f'입력받은 숫자: {num}')
func2(100)
func2(4)
입력받은 숫자: 100
입력받은 숫자: 4
def func3(start, end):
sum = 0
for i in range(start, end+1): # 프린트에서 end까지의 합이니까 +1을 해줘야 한다
sum += i
print(f'{start}부터 {end}까지의 합: {sum}')
func3(1,10)
1부터 10까지의 합: 55
-반환 값이 있는 함수
def func4():
print('안녕하세요 파이썬!')
func4()
# temp=func4()
temp=func4 # 함수를 변수로 저장하려면 실행하고 저장하면 안됨
print(f'temp에 저장된 값:{temp}')
안녕하세요 파이썬!
temp에 저장된 값:<function func4 at 0x7bead081f010>
temp()
안녕하세요 파이썬!
def func5():
return'😍' #리턴값을 만들어줌
temp=func5() #리턴값을 만들어 주었기 때문에 다른 변수로 저장가능
print(f'temp에 저장된 값:{temp}')
temp에 저장된 값:😍
def func5():
return'😍'
# 위에 있는 수식을 더 많이 사용한다.
def func6():
print('😍')
범용성이 높은 위에 수식을 더 많이 사용한다
def func6(num1,num2):
sum=num1+num2
return sum
print(func6(10,5)) # print(num1,num2) 함수에서만 찍어볼수 있다
#temp=func6(10) #매개변수를 두개적어줘야하는데 하나만 적어서 에러남
temp = func6(10,5)
print(temp)
15
15
※ None의 특징
None은 파이썬에서 특별한 값으로, 아무런 값이 없음을 표현하는 데 사용됩니다. 다른 언어에서의 null 또는 nil과 유사한 개념입니다.
None은 파이썬의 내장 상수이며, 그 자체로 데이터 타입이 NoneType입니다. 모든 None은 동일하므로, 두 개의 None 값을 비교할 때 항상 True를 반환합니다.
기본값이 설정된 매개변수
def func6(num1,num2):
sum=num1+num2
return sum
print(func6(10,3))
13
def func6(num1=1,num2=1): # 기본값 설정해줌 아무것도 안넣어주면 일로 해석
sum=num1+num2
return sum
print(func6())
print(func6(10))
print(func6(10,3))
print(func6(num2=10)) # 10을 뒤로 보내주고 싶을때
2
11
13
11
11
가변 매개변수
함수를 호출할 때 *를 사용하면 시퀀스(리스트, 튜플 등)의 요소를 개별적인 위치 인자로 풀어서 전달할 수 있습니다.
def func7(*args):
print(args)
result=0
return result
print(func7())
print(func7(10,30))
print(func7(10,30,70,90,100))
()
0
(10, 30)
0
(10, 30, 70, 90, 100)
0
def func8(id, name,age):
print(f'아이디:{id}')
print(f'이름:{name}')
print(f'나이:{age}')
func8('apple','김사과',20)
아이디:apple
이름:김사과
나아ㅣ:20
func8(age=40,id='banana',name='바나나')
아이디:banana
이름:바나나
나이:40
앞에 저렇게 이름을 지정해 주면 순서가 달라져도 상관없이 잘 나온다.
dic1={'age':25, 'id':'melon', 'name':'이메론'}
func8(**dic1) # 매개변수의 이름에 맞춰 값을 전달
아이디:melon
이름:이메론
나이:25
func8(*dic1) # 매개변수 순서에 따라 키를 전달
아이디:age
이름:id
나이:name
여러 개의 반환 값
def func10(num1,num2):
return num1+num2
result1 = func10(10,3)
print(result1)
13
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}')
덧셈: 13, 뺄셈: 7, 곱셈: 30, 나눗셈: 3.3333333333333335
이렇게 여러 가지 계산도 한 번에 나타낼 수 있다.
_, result2, _, _= func10(10,3) # _ 처리해주면 값을 안만듦
print(f'곱셈: {result3}')
곱셈: 30
내가 원하는 값만 보고 싶으면 이렇게 _ 처리해 주면 된다.