일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- search ads
- 머신러닝 입문 강좌 | TEAMLAB X Inflearn |
- 외장함수
- 검색광고 캠페인
- EXCEPT
- dvdrental
- 숫자형
- 데이터 전처리
- ndarray
- Pickle
- b2b 마케팅
- sql
- 파이썬 코딩 무료 강의 (기본편) - 6시간 뒤면 여러분도 개발자가 될 수 있어요 [나도코딩]
- 문자열 함수
- 파이썬
- 양승화
- 티스토리챌린지
- dbeaver
- inflearn
- 퍼포먼스 마케팅
- Def
- MAC
- google sa
- postgresql
- PYTHON
- GA4
- pgAdmin
- preprocessing
- 디지털 검색광고
- 오블완
- Today
- Total
Maron's DATA Log
[Python] 함수 본문
# 함수 (function)
: 특정한 작업을 하나의 단위로 묶음 - 입력을 받아 그 입력에 해당하는 출력을 반환 (return)
* 내장 함수 : 파이썬이 기본적으로 제공하는 함수
* 사용자 정의 함수 : 개발자가 직접 정의하여 사용할 수 있는 함수
* 매개변수 : 함수 내부에서 사용할 변수
* 반환 값 : 함수에서 처리 된 결과를 반환
* 파라미터의 변수를 직접 지정 가능 - 매개변수의 순서가 달라도 상관 없음
def 함수이름(매개변수):
출력변수를 만드는 소스코드
return 반환 값
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 # 수수료 100원
return commission, balance - money - commission
balance = 0 # 잔액
balance = deposit(balance, 1000)
# balance = withdraw(balance, 2000)
# balance = withdraw(balance, 500)
commission, balance = withdraw_night(balance, 500)
print("수수료는 {0}이며, 잔액은 {1}원입니다.".format(commission, balance))
* 패킹 : 파이썬에서 함수는 여러 개의 반환 값을 가질 수 있음
# 기본값
def profile(id, age, main_lang):
print("ID : {0}\t나이 : {1}\t주 사용 언어 : {2}".format(id, age, main_lang))
profile("A", 20, "파이썬")
profile("B", 25, "자바")
# 같은 나이, 같은 수업
def profile(id, age=17, main_lang="파이썬"): # profile 함수 호출시 내용을 전달 받지 않았을 경우, 기본 값으로 age=17, main_lang="파이썬"
print("ID : {0}\t나이 : {1}\t주 사용 언어 : {2}".format(id, age, main_lang))
profile("C")
# 키워드 값
def profile(id, age, main_lang):
print(id, age, main_lang)
profile(id="D", main_lang="파이썬", age=20)
profile(main_lang="자바", age=23, id="E")
# 가변인자
def profile(id, age, lang1, lang2, lang3, lang4, lang5):
print("ID : {0}\t나이 :{1}\t".format(id,age), end=" ") # end=" " : print 문 끝날 때 줄바꿈하지 않고 띄어쓰기로 이어서 계속 출력
print(lang1, lang2, lang3, lang4, lang5)
profile("F", 20, "Python", "Java", "C", "C++", "C#")
profile("G", 25, "Kotlin", "Swift", " ", " ", " ")
def profile(id, age, *language): # *매개변수 : 넣고 싶은만큼
print("ID : {0}\t나이 :{1}\t".format(id,age), end=" ")
for lang in language:
print(lang, end=" ")
print( )
profile("F", 20, "Python", "Java", "C", "C++", "C#", "Javascript")
profile("G", 25, "Kotlin", "Swift")
# 지역변수 (local variable)
: 함수 안에서 만들어지고 사용되는 함수
* 함수에 넣은 입력 변수나 함수 안에서 만들어진 변수는 함수 바깥에서는 사용할 수 없음.
# 전역변수 (global variable)
: global 키워드로 변수를 지정하면 해당 함수에서는 지역 변수를 만들지 않고, 함수 바깥에 선언된 변수를 바로 참조
* 함수 바깥에서 만들어진 변수는 함수 안에서 사용할 수 있음
* 바깥의 변수와 같은 이름의 변수를 함수 안에 만들면 안됨
e.x)
a = 0
global func( ):
global a
a += 1
for i in range(10):
func( )
print(a)
출력값 : 10
gun = 10
def checkpoint(soldiers): # 경계근무
gun = 20 # 함수 내 gun 사용하게 됨
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
print("전체 총 : {0}".format(gun))
checkpoint(2) # 2명이 경계 근무 나감
print("남은 총 : {0}".format(gun))
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))
gun = 10 # 외부에서 gun 변수 정의
def checkpoint(soldiers): # 경계근무
global gun # 전역 공간에 있는 gun 사용
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun))
def checkpoint_ret(gun, soldiers): # 함수 내 gun 도 지역변수
gun = gun - soldiers
print("[함수 내] 남은 총 : {0}".format(gun)) # 밖에 있는 값이 바뀌지는 않음
return gun # 변경된 값 외부로 리턴
print("전체 총 : {0}".format(gun))
gun = checkpoint_ret(gun, 2) #checkpoint 함수로 호출
print("남은 총 : {0}".format(gun))
# lambda 람다 표현식
: 특정한 기능을 수행하는 함수를 한 줄에 작성 - 한수를 간단하게 작성
* 내장 함수에 자주 사용, 여러 개의 리스트에 적용
def add(x, y):
return x + y
# 일반적인 add( ) 메소드 사용
print(add(3, 5))
# 람다 표현식 이용한 add( ) 메소드
print((lambda x, y : x + y)(3, 5))
'Python' 카테고리의 다른 글
[Python] 클래스 / 메소드 (Method) / 상속 (0) | 2020.12.01 |
---|---|
[Python] 입출력 (1) | 2020.11.30 |
[Python] 조건문 - If / 반복문 - For & While (1) | 2020.11.30 |
[Python] 자료 구조 - List, Dictionary, Tuple, Set (0) | 2020.11.29 |
[Python] 문자열 함수 (0) | 2020.11.27 |