개발/파이썬

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