나도코딩 '파이썬 코딩 무료 강의(기본편) - 6시간 뒤면 여러분도 개발자가 될 수 있어요' 정리
##함수
def open_account():
print("새로운 계좌가 생성되었습니다.")
open_account()
#입금
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):
commision = 100 #수수료 100원
return commision, balance - money - commision
balance = 0 #현재잔액
balance = deposit(balance, 1000) # 입금이 완료되었습니다. 잔액은 1000 원입니다.
print(balance) # 1000
# balance = withdraw(balance, 500) # 출금이 완료되었습니다. 잔액은 500 원입니다.
commision, balance = withdraw_night(balance, 500)
print("수수료 {0} 원이며, 잔액은 {1} 원입니다." .format(commision, balance)) #수수료 100 원이며, 잔액은 400 원입니다.
##기본값
#age, main_lang 값을 입력하지 않고 함수를 호출하면
#함수의 기본값 age=17, main_lang="파이썬"이 적용됨
def profile(name, age=17, main_lang="파이썬"):
print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}" .format(name, age, main_lang))
profile("유재석") # 이름 : 유재석 나이 : 17 주 사용 언어 : 파이썬
profile("김태호") # 이름 : 김태호 나이 : 17 주 사용 언어 : 파이썬
##키워드값
#함수를 호출할 때, 키워드를 이용해서 함수의 매개변수 값을 입력할 수 있음
#순서가 섞여있어도 가능
def profile(name, age, main_lang):
print(name, age, main_lang)
profile(name="유재석", main_lang="파이썬", age=20)
profile(name="김태호", age=25, main_lang="자바")
##가변인자
# def profile(name, age, lang1, lang2, lang3, lang4, lang5):
# print("이름 : {0}\t나이 : {1}\t" .format(name, age), end=" ") # end=" " : print문이 줄바꿈을 하고 끝내지 않고 " "로 끝냄
# print(lang1, lang2, lang3, lang4, lang5)
# profile("유재석", 20, "Python", "Java", "C", "C++", "C#")
# profile("김태호", 25, "Kotlin", "Swift", "", "", "")
#위의 경우 언어가 5개 이하면 나머지는 ""(빈값 처리)하거나
# 언어가 늘어나면 함수자체를 변경해야함
#가변인자 사용
def profile(name, age, *language): #가변인자 *language 사용
print("이름 : {0}\t나이 : {1}\t" .format(name, age), end=" ")
#for문으로 language 출력
for lang in language:
print(lang, end=" ")
print()
profile("유재석", 20, "Python", "Java", "C", "C++", "C#", "JavaScript")
profile("김태호", 25, "Kotlin", "Swift")
##지역변수와 전역변수
#지역변수 : 함수 내에서만 쓸 수 있는 변수
#전역변수 : 프로그램의 모든 공간에서 사용할 수 있는 변수
gun = 10 #전역변수 gun
#전역변수 사용
def checkpoint(soldiers): #경계근무
global gun #전역 공간에 있는 gun을 checkpoint 함수 내에서 사용한다는 의미
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}" .format(gun))
#값을 파라미터로 전달하고 결과값을 반환
def checkpoint_ret(gun, soliders):
gun = gun - soliders
print("[함수 내] 남은 총 : {0}" .format(gun))
return gun
print("전체 총 : {0}" .format(gun))
# checkpoint(2) #2명이 경계 근무 나감
gun = checkpoint_ret(gun, 2) #전역변수 gun을 파라미터로 전달
print("남은 총 : {0}" .format(gun))
##Quiz##
#표준 체중을 구하는 프로그램을 작성하시오
#표준 체중: 각 개인의 키에 적당한 체중
# (성별에 따른 공식)
# 남자 : 키(m) x 키(m) x 22
# 여자 : 키(m) x 키(m) x 21
# 조건1 : 표준 체중은 별도의 함수 내에서 계산
# *함수명 : std_weight
# *전달값 : 키(height), 성별(gender)
# 조건2 : 표준 체중은 소수점 둘째자리까지 표시
# (출력예제)
# 키 175cm 남자의 표준 체중은 67.38kg 입니다.
def std_weight(height, gender):
if gender == "남자":
return height * height * 22
else:
return height * height * 21
height = 175
gender = "남자"
weight = round(std_weight(height/100, gender), 2)
print("키 {0}cm {1}의 표준 체중은 {2}kg 입니다." .format(height, gender, weight))