개발/파이썬
23.03.08 파이썬 사용자 정의 함수, 변수의 범위
상달군
2023. 3. 8. 17:21
728x90
목차
1. 파이썬의 함수
- 함수
- 이름만 있는 함수
- 매개 변수가 있는 함수
- return(리턴)값이 있는 함수
- default(디폴트) 매개변수
- 매개변수의 갯수가 가변적인 함수
- 매개변수를 딕셔너리 구조로 전달받는 함수
- return(리턴)값이 여러개인 함수
2.파이썬의 변수의 범위
- 스코프(scope)
- global 키워드
12.사용자 정의 함수.ipynb
1.함수
- 변수 x, y에 대해 x값이 정해지면 그에 따라 y값을 결정하는것
- 반복적으로 사용되는 가치있는 부분을 묶어서 하나의 집합으로 만듬
- 코드를 재활용하기 위한 목적
// 사용자 정의 함수란 ? 내(개발자)가 직접 만드는 함수
1-1.이름만 있는 함수
- def을 이용하여 만들수 있다.
# 함수 만들기
def 함수명():
함수가 호출되면 실행할 문장
....
함수명() # 호출하는 코드
1-2.매개 변수가 있는 함수
- 함수 호출시 매개변수를 입력 받는다.
def 함수명(변수1,변수2 ...)
함수가 호줄되면 실행할 문장
....
함수명(값1,값2) #호출
1-3.return(리턴)값이 있는 함수
- 함수 호출후 반환된 값을 변수에 저장하고 싶다면 변수 = 함수명(값1,값2)
- 함수 안에서 선언된 변수,값은 함수에서 빠져나가면 모두 삭제 된다.
def 함수명 (변수1, 변수2, .....):
함수가 호출되면 실행할 문장
...
return 값
함수명(값1, 값2, ....) #함수 호출법
- return 값이 없는 경우,
- return 값이 있는 경우,
- 매개변수 2개를 설정 해놓고 return값 반환
- 매개 2개를 설정해놓고 1개의 매개변수만 받을경우 나타나는 에러
- 함수 안에서 선언된 변수는 밖에서 사용할 수 없다.
1-4.default(디폴트) 매개변수
- 변수에 값을 미리 넣어둔다.
def 함수명(변수1 = 기본값1, 변수2 = 기본값2, ....):
함수가 호출되면 실행할 문장
...
return 값
변수 = 함수명(변수1, 변수2)
변수 = 함수명() #이렇게 호출시 기본값으로 들어가게 된다.
디폴트 매개변수는 첫번째 파라미터에만 적용할 수 없음 예) def func6(num1 = 1,num2 )
1-5.매개변수의 갯수가 가변적인 함수
- 변수앞에 '*'를 이용하여 만든다.
- 매개변수가 몇개 들어올지 모를때 사용
def 함수명(*변수):
함수가 호출되면 실행할 문장
...
return 값
변수 = 함수명(변수1, 변수2,....) #여러 변수값을 입력하여 호출
변수 = 함수명(변수1) # 변수1 하나만 입력해 호출
변수 = 함수명() #변수 없이 호출 가능
가변적인 매개변수를 전달할경우 함수안에서 튜플형태로 사용하게 된다.
1-6.매개변수를 딕셔너리 구조로 전달받는 함수
- 변수앞에 '**'를 붙혀 사용한다.
def 함수명(**변수):
함수가 호출되면 실행할 문장
...
return 값
변수 = 함수명(변수1 = 값1 , 변수2 = 값2,....) #호출
- '**'을 사용시 딕셔너리 자체를 매개변수로 전송 할 수 있다.
- '*'을 딕셔너리앞에 붙혀 던지면 key값을 불러온다.
- 딕셔너리 또한 이터러블한 객체이기 때문에 for에 사용가능하다.
1-7.return(리턴)값이 여러개인 함수
- 다른 언어들에서는 안되는 기능
def 함수명(변수1,변수2, ...):
함수가 호출되면 실행할 문장
...
return 값1, 값2, 값3 .....
변수1,변수2, .... = 함수명(변수1,변수2, ...) #호출
13.변수의 범위.ipynb
1.스코프(scope)
- 변수의 접근할 수 있는 범위
- local : 가장 가까운 함수안의 범위
- global : 함수 바깥의 변수 또는 import 된 module
※ improt 란? 다른사람 또는 회사에서 만든 모듈 불러 올때 쓰임
- 함수안에 있는 변수는 함수가 끝나면 쓰지 못하게 메모리 자체에서 사라지게 된다.
- 로컬 변수의 존재 여부를 확인
- locals() 함수
- globals() 함수
2.global 키워드
- 함수 내부에서 로컬변수가 아닌 글로벌 변수로 사용하게 해주는것
- global 키워드를 변수 앞에 적어주면 된다.
728x90