IT/Python3

파이썬 함수 사용법

어센트 2021. 12. 10. 14:47

함수

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):
    commission = 100
    return commission,balance-money-commission  #튜플형식으로 리턴해준다

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

기본값

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

profile('유재석')
profile('김태호',25,'자바')

키워드값

#키워드를 통해 전달하면 매개변수 순서가 바뀌어도 가능하다.
def profile(name,age,main_lang):
    print(name,age,main_lang)

profile(name="유재석",main_lang="파이썬",age=20)
profile(main_lang="자바",age=20,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","Java","Swift","","")

#계속 ""을 인자로 넣는 비효율을 막기 위해 가변인자를 사용한다.

def profile(name,age,*language):
    print('이름:{0}\\t 나이: {1}\\t'.format(name,age),end=" ") #end =" "를 이용하여 개행문자 삭제 가능
    for lang in language:
        print(lang,end=" ")
    print()

profile('유재석',20,"python","Java","C","C++","C#")
profile('김태호',25,"Kotlin","Java","Swift")\\

# 서로다른 개수의 값을 넣어줄때는 가변인자(*test)를 이용하여 문제를 해결할 수 있다.

지역변수와 전역변수

gun = 10

def checkpoint(soldiers): #경계근무   
    global gun # 전역 공간에 있는 gun을 사용하겠다는 의미 즉 위에 선언해놓은 gun 변수를 사용한다는 의미
    gun = gun - soldiers
    print("[함수 내] 남은 총:{0}".format(gun))

def checkpoint_ret(gun,soldiers): #전역변수를 사용하지 않고 매개변수로 전달하는 경우
    gun = gun - soldiers
    print("[함수 내] 남은 총:{0}".format(gun))
    return gun

print("전체 총 :{0}".format(gun))
# checkpoint(2)
gun = checkpoint_ret(gun,2)
print("남은 총 :{0}".format(gun))