1. 함수
▶ 함수의 개념
: 무엇을 넣으면 그것이 처리되어 다시 어떤 것을 돌려주는 기능을 함
: 함수는 매개변수(Parameter)를 입력받은 후 그 매개변수를 가공 및 처리한 후에 반환값을 돌려줌.
▶ 파이썬에서 제공하는 함수
* 별도의 반환값이 없는 함수의 경우
함수명()
ex. print("hello world")
* 함수에 별도의 반환값이 있으면 변수에 반환값을 받아야 함
변수이름 = 함수이름()
ex. num = int("1234")
print(num)
* 사용자 정의 함수
(예시)
# 사용자정의함수 미사용
print("A님, 두 숫자를 입력하세요")
num1 = int(input("정수1 => "))
num2 = int(input("정수2 => "))
hap = num1 + num2
print("결과: ", hap)
print("B님, 두 숫자를 입력하세요")
num1 = int(input("정수1 => "))
num2 = int(input("정수2 => "))
hap = num1 + num2
print("결과: ", hap)
print("C님, 두 숫자를 입력하세요")
num1 = int(input("정수1 => "))
num2 = int(input("정수2 => "))
hap = num1 + num2
print("결과: ", hap)
# 사용자정의함수 사용
def hapFunc() :
num1 = int(input("정수1 => "))
num2 = int(input("정수2 => "))
return num1 + num2
print("A님, 두 숫자를 입력하세요")
hap = hapFunc()
print("결과: ", hap)
print("B님, 두 숫자를 입력하세요")
hap = hapFunc()
print("결과: ", hap)
print("C님, 두 숫자를 입력하세요")
hap = hapFunc()
print("결과: ", hap)
▶ 파이썬에서 제공하는 함수
* plus() 함수
: 두 정수를 입력받아 두 정수의 합계를 반환
# 함수 정의 부분
def plus(v1, v2) :
result = 0
result = v1 + v2
return result
# 전역변수 선언 부분
hap = 0
# 메인코드 부분
hap = plus(100,200)
print("100과 200의 plus() 함수 결과는 ", hap)
[연습문제]
* 계산을 위한 기호 +, -, *, / 를 입력한 뒤, 두 수를 입력하면 선택한 계산이 되는 계산기 만들기(함수 이용)
def calculate(str, a, b) :
if str == '+' :
result = a + b
return result
elif str == '-' :
if a >= b :
result = a - b
return result
elif b > a :
result = b - a
return result
elif str == "/" :
if a >= b :
result = a / b
return result
elif b > a :
result = b / a
return reuslt
elif str == "*" :
result = a * b
return result
else :
print("정확한 숫자를 입력하세요.")
# 함수 정의 부분
def cal(v1,v2,op) :
result = 0
if op == "+" :
result = v1 + v2
elif op == "*" :
result = v1 * v2
elif op == "-" :
if v1 >= v2 :
result = v1 - v2
else :
result = v2 - v1
elif op == "/" :
if v1 >= v2 :
result = v1 / v2
else :
result = v2 / v1
else :
print("정확한 숫자를 입력하세요")
return result
# 전역변수 선언 부분
res = 0
var1, var2, oper = 0,0,""
# 메인 코드 부분
oper = input("계산 입력(+,-,*,/) : ")
var1 = int(input("첫 번째 숫자 입력: "))
var2 = int(input("두 번째 숫자 입력: "))
res = cal(var1, var2, oper)
print(f"## 계산기: {var1} {oper} {var2} =", res)
2. 함수의 매개변수 전달과 값 변환
▶ 함수의 매개변수 전달
[매개변수 전달 방법]
1) 매개변수의 개수 정해놓기
* 숫자 2개의 합과 3개의 합을 구하는 함수
def para2_func(v1, v2) :
result = 0
result = v1 + v2
return result
def para3_func(v1,v2,v3) :
result = 0
result = v1 + v2 + v3
return result
hap = 0
hap = para2_func(10,20)
print("매개변수 2개 함수 호출 결과 =>", hap)
hap = para3_func(10,20,30)
print("매개변수 3개 함수 호출 결과 =>", hap)
2) 매개변수에 기본값을 설정해놓기
# 함수 정의 부분
def para_func(v1, v2, v3=0) :
result = 0
result = v1 + v2 + v3
return result
# 전역변수 선언 부분
hap = 0
# 메인 코드 부분
hap = para_func(10,20)
print("매개변수 2개 함수 호출 결과 => ", hap)
hap = para_func(10,20,30)
print("매개변수 3개 함수 호출 결과 => ", hap)
▶ 값 반환하기
[반환값이 없는 함수]
: 함수를 실행한 결과, 돌려줄 것이 없는 경우에는 return문을 생략함.
: 반환값 없이 함수를 마치면 아무것도 반환하지 않고 함수가 종료됨.
[반환값이 1개 있는 함수]
: 함수가 작동한 후에 반환할 값이 있으면 'return 반환값' 형식으로 표현함.
[반환값이 2개 있는 함수]
: 반환할 값이 2개라면 return 반환값1, 반환값2 형식으로 표현
[pass 키워드]
: 함수의 이름과 형태만 만들어놓고, 내부는 나중에 코딩하고 싶은 경우에 사용
: 함수 뿐 아니라 if문이나 반복문에서도 아무것도 안 하는 코드로 채울 때도 사용함.
><
3. 지역변수와 전역변수
▶ 유효범위, 지역변수, 전역변수 의미
* 유효범위 : 자기가 활동할 수 있는 범위
* 지역변수 : 한정된 지역(local)에서만 사용되는 변수
* 전역변수 : 프로그램 전체(global)에서 사용되는 변수
(→ 지역변수가 전역변수보다 우선시 됨)
[지역변수와 전역변수의 이름이 같은 경우]
# 함수 정의 부분
def func1() :
a = 10 # 지역변수
print("func1()에서 a의 값", a)
def func2() :
print("func2()에서 a의 값", a)
# 전역변수 선언 부분
a = 20
# 메인 코드 부분
func1()
func2()
▶ Global 예약어
: 함수 안에서 사용되는 변수. 무조건 전역변수로 사용하고 싶은 경우에 사용.
: global 예약어와 함께 나오는 변수명은 무조건 전역변수임
: 지역변수와 전역변수의 이름이 같은 경우
댓글