sm 기술 블로그
11. 함수 / 지역변수,전역변수 본문
함수
특정 기능을 수행하는 코드들의 모음
기본구조
def 함수이름(매개변수 - 생략가능) :
함수에서 수행할 작업
매개변수는 생략이 가능하다.
예제 - ATM
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 #수수료 100원
return commission, balance - money - commission
#수수료와 잔액-돈-수수료 를 받음
balance = 0 #잔액
balance = deposit(balance, 1000)
commission, balance = withdraw_night(balance, 500)
print("수수료 {0}원이며, 잔액은 {1} 원입니다.".format(commission,balance))
def를 통해 함수를 생성한다.
계좌를 생성, 입금, 출금(+야간 출금), 함수를 선언하였다.
return은 함수내에서 이루어져 도출된 값을 밖에서도 사용할 수 있도록 한다.
deposit(balance, 1000) 를 통해 balance 값과 1000 값을 함수를 선언하고 전달한다.
※ def test() 는 함수, 클래스 안에 def test()는 메소드(혹은 함수)라 한다.
# 출력 결과
입금이 완료되었습니다. 잔액은 1000 원입니다.
수수료 100원이며, 잔액은 400 원입니다.
1000원을 입금하고, 야간 출금으로 수수료 100원을 때고 500원을 출력함
예제 - 학생 관리 함수
# 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)
#가변인자를 사용해서 계속 추가할 수 있도록 함.
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#","JavaScript")
profile("김태호",25, "Kotlin", "Swift")
*을 이용하면 매개변수를 묶을 수 있다.
end = " "는 줄바꿈을 하지 않고 출력한다는 의미이다.
반복문을 통해 유재석 profile가 사용하는 언어 Python, Java, C, C++, C#, JavaScript을 하나씩 출력할 수 있다.
# 출력 결과
이름 : 유재석 나이 : 20 Python Java C C++ C# JavaScript
이름 : 김태호 나이 : 25 Kotlin Swift
지역변수 전역변수
지역변수 : 변수를 만든 함수 안에서만 접근할 수 있는 변수
전역변수 : 함수를 포함하여 스크립트 전체에서 접근할 수 있는 변수
#지역변수와 전역변수
gun = 10
def checkpoint(soldiers): #경계근무
global gun #전역 공간에 있는 gun 사용
gun = gun - soldiers # checkpoint 함수내에서만 사용하는 지역 변수
# global을 통해서 전역변수로 변함
print("[함수 내] 남은 총 : {0}".format(gun))
def checkpoint_ret(gun, soldiers): #경계근무
gun = gun - soldiers # checkpoint 함수내에서만 사용하는 지역 변수
print("[함수 내] 남은 총 : {0}".format(gun))
return gun
print("전체 총 : {0}".format(gun))
# checkpoint(2)
gun = checkpoint_ret(gun, 2)
print("남은 총 : {0}".format(gun))
gun = 10은 전역변수로 전체에서 사용가능하다.
함수 내에서 gun = nun-soldiers로 지역변수로 정의하였다.
정의된 변수는 지역 내에서만 사용이 가능하기 때문에 바로 그 값을 함수 외부에서도 사용하기 위해서는
return을 해줘야한다.
'Python' 카테고리의 다른 글
13. 파일 입출력 / pickle / with (0) | 2022.05.05 |
---|---|
12. 표준 출력(sep, sys, ljust, rjust, zfill, input) / 출력포맷 (0) | 2022.05.05 |
10. 문자열 + 배열 + 반복문 예제 (0) | 2022.05.05 |
9. 반복문 (for / while) (0) | 2022.05.05 |
8. 조건문(분기) (0) | 2022.05.05 |
Comments