def 함수명 (입력 인수):
<수행할 문장1>
<수행할 문장2>
return (출력 인수)
여러번 반복 되는 기능을 묶어 코드의 양을 줄여준다
입력값X, 출력값 Y가 있는 형태
EX)
def sum (a,b):
return a+b
sum(3,4)
>> 3
EX)
def say_myself(name, old, man=True):
print(f'나의 이름은 {name}입니다.')
print(f'나의 나이는{old}입니다.')
if man:
print('남자 입니다.')
else:
print('여자 입니다.')
say_myself('홍길동', 30)
> 나의 이름은 홍길동입니다.
> 나의 나이는 30입니다.
> 남자 입니다.
say_myself('이영애', 40, False)
> 나의 이름은 이영애입니다.
> 나의 나이는 40입니다.
> 여자 입니다.
EX)
def test():
local_var =20
test()
print(local_var)
> error 발생
* local_var가 지역변수이기 때문에 함수를 선언한다고 하더라도 외부에서는 호출되지 않는다.
def test2():
global local_var
local_var =20
test2()
print(local_var)
>20
def mean(*args):
sum_arg=0
for arg in args:
sum_arg+=arg
mean_arg=sum_arg/len(args)
return mean_arg
def calculate(a,b):
sum_=a+b
subtract=a-b
multiply=a*b
devide=a/b
return sum_,subtract,multiply,devide
EX)
class Person:
def __init__(self, name, age, gender):
self.name=name
self.age=age
selg.gender=gender
def walk(self):
print(self.name +"is walking.")
# Person 클래스의 인스턴스 생성
alice=Person("Alice", 25, "Female")
bob=Person("Bob", 30, "Male")
# 인스턴스의 속성 접근
print(alice.name)
> Alice
print(bob.age)
>30
# 인스턴스의 메서드 호출
alice.walk()
> Alice is walking.
bob.walk()
> Bob is walking.
# step 1: 클래스 객체 선언하기
class Fourcal:
pass
a=FourCal()
# step 2: 메서드 선언하기
class Fourcal:
def setdata(self, num1, num2):
self.num1=num1
self.num2=num2
def add(self):
return self.num1+self.num2
# step 3: 인스턴스 선언하기
a=FourCal()
a.setdata(4,2)
print(a.add())
> 6
class FourCal:
def __init__(self, num1, num2):
self.num1=num1
self.num2=num2
def add(self):
return self.num1+self.num2
def subtract(self):
return self.num1-self.num2
def multiply(self):
return self.num1*self.num2
def devide(self):
return self.num1/self.num2
calculator=FourCal(10,5)
result=calculator.add()
print(result)
> 15
result=calculator.subtract()
print(result)
> 5
result=calculator.multiply()
print(result)
> 50
result=calculator.devide()
print(result)
> 2.0
class Account:
def __init__(self, account_number, name, init_balance):
self.account_number=account_number
self.name=name
self.init_balance=init_balance
def deposit(self, deposit_amount):
self.balance+=deposit_amount
return print(f"{self.name}의 계좌{self.account_number}의 입금 후 잔액은 {self.balance}원 입니다.")
def withdraw(self, withdraw_amount):
self.balance-=withdraw_amount
return print(f"{self.name}의 계좌{self.account_number}의 출금 후 잔액은 {self.balance}원 입니다.")
def present_balance(self):
print(f"{self.name}의 계좌{self.account_number}의 현재 잔액은 {self.balance}원 입니다.")
my_bank=Account("123456789", Laura, 500)
my_bank.deposit(300)
> Laura의 계좌 123456789의 입금 후 잔액은 800원 입니다.
my_bank.withdraw(100)
> Laura의 계좌 123456789의 입금 후 잔액은 700원 입니다.
my_bank.present_balance()
> Laura의 계좌 123456789의 현재 잔액은 700원 입니다.
class MoreFourCal(FourCal):
pass
a=MoreFourCal(4,2)
a.add()
> 6
# MoreFourCal 클래스는 add 메서드와 속성을 정의하지 않았지만 FourCal를 상속받아 사용할 수 있다.
class SafeFourCal(FourCal):
def divide(self):
if self.num2==0:
print("0으로 나눌 수 없습니다.")
else:
return self.num1/self.num2
# 이전 FourCal 클래스에서는 0으로 나눈 경우 에러가 발생했는데 SafeFourCal클래스에서 devide메서드를 오버라이딩 하여 에러가 발생하지 않도록 수정하였다.