Python - 기초 (4)

제갈창민·2021년 10월 11일
0

learningbook

목록 보기
6/32

함수 : 어떠한 역할을 하는 박스

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))

def withdraw_night(balance, money): # 저녁에 출금
commission = 100 # 수수료 값 설정
return commission, balance - money - commission

balance = 0 # 잔액
balance = deposit(balance, 1000) # 함수 호출
#balance = withdraw(balance, 2000)

commission, balance = withdraw_night(balance, 500)
print("수수료는 {0} 원이며, 잔액은 {1} 원 입니다.".format(commission, balance))

기본값 설정 방법

def profile(name, age, main_lang):
print("이름 : {0}\t나이 : {1}\t주 사용 언어: {2}".format(name, age, main_lang))

profile("유재석", 20, "파이썬")
profile("김태호", 25, "자바")

같은 학교 같은 학년 같은 반 같은 수업

def profile(name, age=17, main_lang="파이썬"):
print("이름 : {0}\t나이 : {1}\t주 사용 언어: {2}" \
.format(name, age, main_lang))

profile("유재석")
profile("김태호")

키워드 값을 이용한 함수 호출

def profile(name, age, main_lang):
print(name, age, main_lang)

profile(name="유재석", main_lang="파이썬", age=20)
profile(main_lang="자바", age=25, name="김태호")

가변 인자

def profile(name, age, lang1, lang2, lang3, lang4, lang5):
print("이름 : {0}\t나이 : {1}\t".format(name, age), end=" ") # end 사용시 줄바꿈 하지않고 뒤이어서 출력하게 해줌
print(lang1, lang2, lang3, lang4, lang5)

profile("유재석", 20, "Python", "Java", "c", "C++", "C#")
profile("김태호", 25, "Kotlin", "Swift", "", "", "")

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")

지역변수 : 함수내에서만 사용 할 수 있는 것

전역변수 : 프로그램내 어디서든 불러 쓸 수 있는 것

gun = 20

def checkpoint(soldiers): # 근무나가는 군인 수
gun = 10 # (지역변수)
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))

print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명이 근무 나감
print("남은 총 : {0}".format(gun))

def checkpoint(soldiers): # 근무나가는 군인 수
global gun # 전역 공간에 있는 gun 사용 (전역변수)
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))

print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명이 근무 나감
print("남은 총 : {0}".format(gun))

★ 전역변수를 많이 쓰면 코드 관리가 어려움. 아래의 return 으로 대체가능
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))

Quiz. 6

#표준 체중을 구하는 프로그램
#표준 체중 : 각 개인의 키에 적당한 체중
#(성별에 따른 공식)
#남자 : 키(m) x 키(m) x 22
#여자 : 키(m) x 키(m) x 21

#조건1 : 표준 체중은 별도의 함수 내에서 계산

    # 함수명 : std_weight
    # 전달값 : 키(height), 성별(gender)

#조건2 : 표준 체중은 소수점 둘째자리까지 표시

#예제
#키 175cm 남자의 표준 체중은 67.38kg 입니다.

풀이

def std_weight(height, gender): # 키는 m 단위 (실수), 성별 "남자" / "여자"
if gender == "남자":
return height height 22
else:
return height height 21

height = 175 # cm 단위
gender = "남자"
weight = round(std_weight(height / 100, gender), 2) # /100 = 단위환산을 위한 계산,
print("키 {0}cm {1}의 표준 체중은 {2}kg 입니다.".format(height, gender, weight))

profile
자기계발 중인 신입 개발자

0개의 댓글