함수
- 함수는 반복되는 코드 블록에 이름을 붙여놓은 것으로
- 반복되는 코드를 줄여주고, 좀 더 구조화시켜 코드를 알아보기 쉽게 한다.
함수의 선언방법
def 함수이름 ( 매개변수 ) :
※ 매개변수(Parameter)
: 함수 정의시 지정하는 함수가 실행을 위해 필요한 값을 받을 변수
: 함수안에서만 참조가 가능하다.
함수의 정의 (Definition)
def 이름(parameter1, parameter2) :
print(parameter1, parameter2)
함수의 호출 (call)
함수이름( 인수또는 인자(Argument) )
함수 호출시 함수에 전달할 값이라 한다.
calc 함수에 1~10까지의 합을 구하는 코드를 작성한 이후 호출하는 소스코드
def calc():
sum = 0
for i in range(1,11):
sum+=i
print(sum)
calc()
결과 55
Return
- 함수의 반환값은 함수가 실행한 결과를 전달하기 위해 사용한다.
- 함수가 실행한 결과를 반환하는 값
- 변수 또는 표현식의 결과는 모든 자료형이 가능하다.
- return은 두번째의미로 함수의 종료를 뜻하기도 한다.
def add_num(x,y):
result = x + y
return result
add_num(3,5)
결과 : 8
예제1 조건에 따라 다른 값을 반환 ( 항상 큰 값에서 작은 값은 뺌 )
def sum_(a,b):
result = 0
if a>b:
result = a - b
else:
result = b - a
return result
sum_(100,10000)
결과 : 9900
예제 2 - 자연수 n을 매개변수로 받아서, n의 약수의 합을 반환하는 함수
def num(n):
i = 1
sum2 = 0
while i<=n:
if n%i == 0:
sum2 += i
i+=1
return sum2
num(15)
결과 : 24
예쩨3 - 자연수 2개를 매개변수로 받아서, 두 수 사이의 합계를 구하는 함수
def num2(x,y):
result = 0
if x>y:
for i in range(y,x+1):
result += i
return result
else:
for i in range(x,y+1):
result += i
return result
num2(1,10)
결과 55
예제3 - 자연수 n을 받아서 약수를 리스트로 반환하는 함수
def num4(n):
i = 1
result = []
for i in range(1, n+1):
if n % i == 0:
result.append(i)
i+=1
return result
num4(4)
결과 : 1, 2, 4
전역변수
- 함수 외부에서 만들어진 변수로, 어디서든 사용이 가능하다.
name = "홍길동"
def func1():
print(name)
func1()
지역변수
- 함수 내부에서 만들어진 변수로, 함수 안에서만 사용이 가능하다.
a = "전역변수"
def x():
global a
print('before', a)
a = "지역변수"
print("after", a)
x()
함수의 기본값 매개변수
- Python에서는 매개변수의 기본값을 지정해서, 자주 수정하지 않는 매개변수는 기본 값으로 처리가 가능하다.
- 기본 값을 가지는 매개변수는 일단 매개변수보다 뒤쪽에 선언되어야한다.
def calc(start, end, step=1):
sum_=0
for i in range(start, end+1, step):
sum_+= i
return sum_
calc(3,20)
def calc2(start=1, end, step=1):
sum_=0
for i in range(start, end+1, step):
sum_+= i
return sum_
calc2()
- end만 비워두고, start 매개변수와 step 매개변수만 기본값을 준다면
- 위 처럼 에러가 발생하게 된다.
키워드 인수
- 함수 호출시 매개변수에 전달되는 값에 명칭을 직접 지정하여 전달이 가능하다.
- 파라미터 이름을 포함한 인수 사용시 순서를 변경할 수 있다.
- 기본값을 갖는 파라미터는 생략이 가능하다.
- 필수 인수를 포함하지 않으면 에러가 발생한다.
- 파이썬에서는 순서와 무관하게 직접 지정해서 값을 전달하는 방법을 제공한다.
def calc3(start, end, step):
sum_=0
for i in range(start, end+1, step):
sum_+= i
return sum_
calc3(step=1, end=10, start=2)
728x90
'Programming > Python' 카테고리의 다른 글
Tuple(튜플)과 Dictionary(딕셔너리) (2) | 2023.10.24 |
---|---|
리스트(LIST 02) (0) | 2023.10.24 |
리스트(LIST)_01 (0) | 2023.10.23 |
문자열 다루기 (2) | 2023.10.20 |
제어문 - 반복문(for), 탈출문, 무한반복문 (0) | 2023.10.19 |