### 함수, 전달값과 반환값
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, 500) # 500원 차감
commission, balance = withdraw_night(balance, 200)
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, '파이썬')
def profile2(name, age=15, main_lang='파이썬'): # 함수 기본 값
print('이름 : {0}\t나이 : {1}\t 주 사용 언어: {2}'\
.format(name, age, main_lang))
profile2('유재석')
def profile3(name, age, main_lang): # 함수 키워드
print(name, age, main_lang)
profile3(name='유재석', main_lang='파이썬',age=20)
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('유재석',20,'Python', 'Java', 'C', 'C++', 'C#')
profile4('김태호',25, 'Kotlin', 'Swift', '','','')
def profile5(name, age, language): # 함수 가변인자를 이용한 함수 호출
print('이름: {0}\t나이 : {1}\t'.format(name, age), end=' ')
for lang in language:
print(lang,end=' ')
print()
profile5('유재석',20,'Python', 'Java', 'C', 'C++', 'C#', 'JavaScript')
profile5('김태호',25, 'Kotlin', 'Swift')
### 지역변수와 전역변수
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))
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))
### 문제 6
''' 표준 체중을 구하는 프로그램을 작성하시오
* 표준 체중 공식 [키(m)]
남자 : 키 x 키 x 22
여자 : 키 x 키 x 21
조건1 : 표준 체중은 별도의 함수 내에서 계산
* 함수 명 : std_weight
* 전달 값 : 키(height), 성별(gender)
조건2 : 표준 체중은 소수점 둘째자리까지 표시
(출력 예제) 키 175 cm 남자의 표준 체중은 67.38 kg 입니다.'''
# 나의 코드
def std_weight(gender, height):
if gender == '남자':
height1 = height/100
std = round(pow(height1,2) * 22,2)
print('키 {0} cm {1}의 표준 체중은 {2} kg 입니다.'.format(height, gender, std))
elif gender == '여자':
height1 = height/100
std = round(pow(height1,2) * 21,2)
print('키 {0} cm {1}의 표준 체중은 {2} kg 입니다.'.format(height, gender, std))
else:
print('성별은 여자 혹은 남자로 입력해 주세요.')
gender = input("성별(남자,여자)을 입력하세요. ")
height = input("키(cm)를 입력하세요. ")
std_weight(gender, int(height))
# 정답 코드
def std_weight(gender, height):
if gender == '남자':
return height * height * 22
else:
return height * height * 21
height = 183
gender = '남자'
weight = round(std_weight(height/100,gender),2)
print('키 {0} cm {1}의 표준 체중은 {2} kg 입니다.'.format(height, gender, weight))
* 출처 나도코딩 [파이썬 코딩 무료 강의 (기본편)]
파이썬 코딩 무료 강의 (기본편) - 6시간 뒤면 여러분도 개발자가 될 수 있어요 [나도코딩] (youtube.com)
'Python 뿌시기' 카테고리의 다른 글
[Python 문법 6] - 클래스, __init__, 맴버변수, 매소드, 상속, 다중상속, 메소드 오버라이딩, pass, super (1) | 2024.09.26 |
---|---|
[Python 문법 5] - 표준입출력, 출력포맷, 파일 입출력, pickle, with (7) | 2024.09.26 |
[Python 문법 3] - if, for, while, continue & break, 한줄 for (6) | 2024.09.26 |
[Python 문법 2] - 리스트, 사전, 튜플, 세트, 자료 구조 변경 (0) | 2024.09.26 |
[Python 문법 1.2] - 문자열, 슬라이싱, 문자열 처리 함수, 포맷, 탈출문자 (0) | 2024.09.26 |