Python 뿌시기

[Python 문법 4] - 함수, 전달 값과 반환 값, 기본 값, 키워드 값, 가변인자, 지역변수와 전역변수

pjw250 2024. 9. 26. 18:43

### 함수, 전달값과 반환값

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)