1. 함수란?
코드 재사용성, 가독성 향상, 유지보수 용이하여 함수를 사용한다.
# 함수의 기본 구조
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 출력: 8
-----------------------------------------------------------------------------------------------
# 입력이 없는 구조: 고정된 결괏값이나 특정 동작을 수행할 수 있다.
def say():
return 'Hi'
greeting = say()
print(greeting) # 출력: Hi
-----------------------------------------------------------------------------------------------
# 리턴값이 없는 구조: 결괏값을 반환하지 않고 내부에서 특정 동작을 수행하는 함수이다.
def add(a, b):
print("%d, %d의 합은 %d입니다." % (a, b, a+b))
add(3, 5) # 출력: 3, 5의 합은 8입니다.
-----------------------------------------------------------------------------------------------
# 입력도 리턴값도 없는 구조
def say():
print('Hi')
say() # 출력: Hi
-----------------------------------------------------------------------------------------------
# 여러 값을 리턴하는 구조
def calculate(a, b):
sum_value = a + b
diff_value = a - b
prod_value = a * b
quot_value = a / b if b != 0 else None
return sum_value, diff_value, prod_value, quot_value
# 사용 예제
sum_result, diff_result, prod_result, quot_result = calculate(10, 2)
print(f"합: {sum_result}, 차: {diff_result}, 곱: {prod_result}, 나눗셈: {quot_result}")
# 출력: 합: 12, 차: 8, 곱: 20, 나눗셈: 5.0
2. 클래스란?
객체를 만들어 내기 위한 설계도 또는 틀과 같은 것을 의미한다.
- 계산기 만들어보기
# 연산 함수 만들어 보기
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
if y == 0:
return "Division by zero error"
return x / y
# Class로 묶어보기
class Calculator:
def add(self, x, y):
return x + y
def subtract(self, x, y):
return x - y
def multiply(self, x, y):
return x * y
def divide(self, x, y):
if y == 0:
return "Division by zero error"
return x / y
# 누적, 리셋 기능 넣어보기
class AccumulatingCalculator:
def __init__(self):
self.total = 0 # 계산 결과를 누적하는 변수
def add(self, x):
self.total += x
return self.total
def subtract(self, x):
self.total -= x
return self.total
def multiply(self, x):
self.total *= x
return self.total
def divide(self, x):
if x == 0:
return "Division by zero error"
self.total /= x
return self.total
def reset(self):
self.total = 0
return self.total
# 클래스 인스턴스 생성
acc_calc = AccumulatingCalculator()
# 연산 예시
print(acc_calc.add(10)) # 결과: 10 (0 + 10)
print(acc_calc.subtract(2)) # 결과: 8 (10 - 2)
print(acc_calc.multiply(5)) # 결과: 40 (8 * 5)
print(acc_calc.divide(2)) # 결과: 20 (40 / 2)
print(acc_calc.add(5)) # 결과: 25 (20 + 5)
print(acc_calc.reset()) # 결과: 0 (계산기 리셋)
class RegionalCalculator:
def __init__(self, region):
self.total = 0
self.region = region
def add(self, x):
self.total += x
return self._print_result()
def subtract(self, x):
self.total -= x
return self._print_result()
def multiply(self, x):
self.total *= x
return self._print_result()
def divide(self, x):
if x == 0:
return "Division by zero error"
self.total /= x
return self._print_result()
def reset(self):
self.total = 0
return self._print_result()
def _print_result(self):
if self.region == "경상도":
return f"{self.total}이다 잉가, 바람이 분다!"
elif self.region == "전라도":
return f"{self.total}이제 노라, 그렇구마잉!"
elif self.region == "충청도":
return f"{self.total}여, 그러믄 되겠네!"
else:
return self.total
- 지역이름 넣어서 만들보기
class RegionalCalculator:
def __init__(self, region):
self.total = 0
self.region = region
def add(self, x):
self.total += x
return self._print_result()
def subtract(self, x):
self.total -= x
return self._print_result()
def multiply(self, x):
self.total *= x
return self._print_result()
def divide(self, x):
if x == 0:
return "Division by zero error"
self.total /= x
return self._print_result()
def reset(self):
self.total = 0
return self._print_result()
def _print_result(self):
if self.region == "경상도":
return f"{self.total}이다 잉가, 바람이 분다!"
elif self.region == "전라도":
return f"{self.total}이제 노라, 그렇구마잉!"
elif self.region == "충청도":
return f"{self.total}여, 그러믄 되겠네!"
else:
return self.total
# 각 지역별 계산기 인스턴스 생성
calc_gyeongsang = RegionalCalculator("경상도")
calc_jeolla = RegionalCalculator("전라도")
calc_chungcheong = RegionalCalculator("충청도")
# 경상도 계산기 사용
print(calc_gyeongsang.add(10)) # 출력: 10이다 잉가, 바람이 분다!
print(calc_gyeongsang.subtract(3)) # 출력: 7이다 잉가, 바람이 분다!
# 전라도 계산기 사용
print(calc_jeolla.multiply(5)) # 출력: 0이제 노라, 그렇구마잉!
print(calc_jeolla.add(100)) # 출력: 100이제 노라, 그렇구마잉!
# 충청도 계산기 사용
print(calc_chungcheong.divide(4)) # 출력: 0.0여, 그러믄 되겠네!
print(calc_chungcheong.add(40)) # 출력: 40.0여, 그러믄 되겠네!
'Today I Learned (TIL) > Python' 카테고리의 다른 글
[TIL] Python 베이직 - 5회차 (0) | 2024.07.30 |
---|---|
[TIL] Python 베이직 - 4회차 (0) | 2024.07.25 |
[TIL] 데이터 시각화 - Matplotlib (4) | 2024.07.22 |
[TIL] Python 챌린지 - 2회차 (0) | 2024.07.19 |
[TIL] Python 챌린지 - 1회차 (0) | 2024.07.17 |