1. 함수, 전달값과 반환값
def open_account():
print("새로운 계좌가 생성되었습니다.")
def deposit(balance, money):
print("입금이 완료되었습니다. 잔액은 {0} 원입니다.".format(balance + money))
return balance + money
def withdraw(balance, money):
if balance >= money:
print("출금이 완료되었습니다. 잔액은 {0}원 입니다.".format(balance - money))
return balance - money
else:
print("출금이 완료되지 않았습니다. 잔액은 {0}원입니다.".format(balance))
return balance
def withdraw_night(balance, money):
commission = 100
return commission, balance - money - commission
balance = 0
balance = deposit(balance, 1000)
balance = withdraw(balance, 2000)
balance = withdraw(balance, 200)
commission, balance = withdraw_night(balance, 500)
print("수수료 {0} 원이며, 잔액 {1}원입니다.".format(commission, balance))
>>>
입금이 완료되었습니다. 잔액은 1000 원입니다.
출금이 완료되지 않았습니다. 잔액은 1000원입니다.
출금이 완료되었습니다. 잔액은 800원 입니다.
수수료 100 원이며, 잔액 200원입니다.
2. 기본값
def profile(name, age, main_lang):
print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}" \
.format(name, age, main_lang))
profile("유재석", 20, "파이썬")
profile("김태호", 25, "자바")
>>>
이름 : 유재석 나이 : 20 주 사용 언어 : 파이썬
이름 : 김태호 나이 : 25 주 사용 언어 : 자바
def profile(name, age = 17, main_lang = "파이썬"):
print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}"\
.format(name, age, main_lang))
profile("유재석")
profile("김태호")
>>>
이름 : 유재석 나이 : 17 주 사용 언어 : 파이썬
이름 : 김태호 나이 : 17 주 사용 언어 : 파이썬
3. 키워드값
def profile(name, age, main_lang):
print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}" \
.format(name, age, main_lang))
profile(name = "유재석", main_lang = "파이썬", age = 20)
profile(main_lang = "자바", age = 25, name = "김태호")
>>>
이름 : 유재석 나이 : 20 주 사용 언어 : 파이썬
이름 : 김태호 나이 : 25 주 사용 언어 : 자바
4. 가변인자
def profile(name, age, *language):
print("이름 : {0}\t나이 : {1}\t".format(name, age), end= " ")
for lang in language:
print(lang, end=" ")
print()
profile("유재석", 20, "Python", "Java", "C", "C++", "C#", "JavaScript")
profile("김태호", 25, "Kotlin", "Swift")
>>>
이름 : 유재석 나이 : 20 Python Java C C++ C
이름 : 김태호 나이 : 25 Kotlin Swift
5. 지역변수, 전역변수
gun = 10
def checkpoint(soldiers):
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2)
print("남은 총 : {0}".format(gun))
gun = 10
def checkpoint(soldiers):
gun = 20
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2)
print("남은 총 : {0}".format(gun))
>>>
전체 총 : 10
[함수 내] 남은 총 : 18
남은 총 : 10
gun = 10
def checkpoint(soldiers):
global gun
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2)
print("남은 총 : {0}".format(gun))
>>>
전체 총 : 10
[함수 내] 남은 총 : 8
남은 총 : 8
gun = 10
def checkpoint_ret(gun, soldiers):
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
return gun
print("전체 총 : {0}".format(gun))
gun = checkpoint_ret(gun, 2)
print("남은 총 : {0}".format(gun))
>>>
전체 총 : 10
[함수 내] 남은 총 : 8
남은 총 : 8
📒 참고 자료
https://www.youtube.com/watch?v=kWiCuklohdY