# 함수 (들여씌기 내어쓰기 조심)
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 # 수수료
return commision, balance - money - commision
balance = 0
balance = deposit(balance,3000) # return을 통해 반환된 금액을 balance에 저장함.
balance = withdraw(balance, 2000)
print(balance)
commision, balance = withdraw_night(balance, 500)
print("수수료는 {0}원이며, 잔액은 {1}입니다.".format(commision, balance))
# 기본값 : 값이 반복되기 때문에 아예 설정하는 값.
def profile(name, age, main_lan):
print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}" \
.format(name, age, main_lan))
profile("고감자", 30, "Python")
profile("정맥주", 27, "photoshop")
# 만약 나이가 같다고 하면
def profile2(name, age = 3, main_lan = "Korean"):
print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}" \
.format(name, age, main_lan))
profile2("고감자")
profile2("정맥주")
# 키워트값 : 함수를 부를때 키워드를 정해주고 부르면 순서가 뒤죽박죽이어도 순서대로 정상 출력된다.
def profile3(name, age, main_lan):
print(name, age, main_lan)
profile3(name="고감자", main_lan="Python", age=30)
profile3(main_lan="Photoshop", age=27, name="정맥주")
# 가변인자 : 변수의 갯수가 맞지 않아도 같은
def profile4(name, age, lang1, lang2, lang3, lang4, lang5):
print("이름 : {0}\t나이 : {1}\t".format(name,age), end=" ")
print(lang1, lang2, lang3, lang4, lang5)
profile4("고감자", 30, "Python", "Java", "C", "C++", "C#")
profile4("정맥주", 27, "Photoshop", "illustration", "", "", "")
# 이때 고감자는 공부를 더 해서 할 줄 아는 언어가 하나 더 늘었다고 하면???? --> 가변인자
def profile5(name, age, *language):
print("이름 : {0}\t나이 : {1}\t".format(name,age), end=" ")
for lan in language:
print(lan, end=" ")
print()
profile5("고감자", 30, "Python", "Java", "C", "C++", "C#", "JavaScript")
profile5("정맥주", 27, "Photoshop", "illustration")
# 지역변수 : 함수내에서 사용 & 전역변수 : 모든 공간에서 사용
#01 : UnboundLocalError: local variable 'gun' referenced before assignment
# 초기화 전에 사용되었다고 오류남. 함수 안에 gun이라는게 할당되지 않아서(지역변수)
gun = 10
def checkpoint(soldiers): # 경계근무.
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명이 경계 근무 나감.
print("남은 총 : {0}".format(gun))
#02 : 지역변수로 gun을 사용해줌.
gun = 10
def checkpoint(soldiers): # 경계근무.
gun = 20
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명이 경계 근무 나감.
print("남은 총 : {0}".format(gun))
# 전체 총 : 10 [함수 내] 남은 총 : 18 남은 총 : 10
#03 : global을 이용하여 전역변수의 gun을 가져다가 씀. ---> 보통 이렇게 잘 안씀.
gun = 10
def checkpoint(soldiers): # 경계근무.
global gun # 전역 공간에 있는 gun을 사용.
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명이 경계 근무 나감.
print("남은 총 : {0}".format(gun))
# 전체 총 : 10 [함수 내] 남은 총 : 8 남은 총 : 8
#04 : 매개변수로 gun을 주기 ----> 제일 권하는 방식.
gun = 10
def checkpoint_return(gun, soldiers):
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
return gun
print("전체 총 : {0}".format(gun))
gun = checkpoint_return(gun, 2) # 2명이 경계 근무 나감.
print("남은 총 : {0}".format(gun))
# 전체 총 : 10 [함수 내] 남은 총 : 8 남은 총 : 8
# Quiz : 표준 체중을 구하는 프로그램을 작성하시오
# * 표준 체중 : 각 개인의 키에 적당한 체중
#(성별에 따른 공식)
# 남자 : 키(m) x 키(m) x 22
# 여자 : 키(m) x 키(m) x 21
# 조건1 : 표준 체중은 별도의 함수 내에서 계산
# * 함수명 : std_weight
# * 전달값 : 키(height), 성별(gender)
# (출력예제)
# 키 175cm 남자의 표준 체중은 67.38kg 입니다.
# mine_sol
def std_weight(height, gender):
if gender == "여자":
weight = height * height * 21
return weight
else :
weight = height * height * 22
return weight
height = 164
gender = "여자"
weight = round(std_weight(height / 100, gender), 2)
print("키 {0}cm {1}의 표준체중은 {2}입니다.".format(height, gender, weight))
# other_sol
def std_weight1(height, gender): # 키 m단위, 성별 "남자"/"여자"
if gender == "남자":
return height * height * 22
else:
return height * height * 21
height = 164 # cm단위
gender = "남자"
weight = round(std_weight1(height / 100, gender), 2)
print("키 {0}cm {1}의 표준체중은 {2}입니다.".format(height, gender, weight))
'_Programming > Python' 카테고리의 다른 글
Basic.클래스 (0) | 2020.09.11 |
---|---|
Basic.입출력 (0) | 2020.09.10 |
Basic.제어문 (0) | 2020.09.08 |
Basic.자료구조 (0) | 2020.09.07 |
Basic.문자열처리 (0) | 2020.09.04 |