본문 바로가기
프로그래밍/Python

Python - range와 scope

by 왕거 2020. 7. 22.

range와 scope

 

사실 서로 별 관련은 없는 개념인데 겸사겸사 한꺼번에 정리한다.

 

range

  • range는 기본 제공되는 함수이다.
  • 기본적으로 지정된 값만큼의 범위를 가진다고 이해하는게 좋다.
  • 총 3개의 인수를 전달할 수 있고, 각각의 경우에 따른 세부 기능이 다르다.
    • 인수 1개  -  0에서부터 인수로 입력한 숫자 - 1만큼의 범위를 가진다.
    • 인수 2개  -  시작할 지점과 마무리 지점을 순서대로 지정한다. 시작 지점은 표시한 숫자부터, 마무리 지점은 인수 - 1 지점까지의 범위를 가진다.
    • 인수 3개  -  인수 2개와 거의 동일하지만 3번째 인수의 값만큼 값을 건너뛰는 범위를 가진다. 사실 인수 2개를 사용하는 방법에도 기본값인 1이 적용된다.
for i in range(4):
    print(i, end=', ')
print("")
for i in range(2,6):
    print(i, end=', ')
print("")
for i in range(2,10,3):
    print(i, end=', ')
print("")

#########################
#실행 결과
0, 1, 2, 3, 
2, 3, 4, 5,
2, 5, 8,

 

scope

  • scope개념은 다른 언어의 지역변수, 전역변수 개념과 비슷하다.
  • Local, Enclose, Module, Builtin 총 4가지 종류의 scope가 있는데 먼저 쓴 scope일 수록 좁은 범위를 의미한다.
    • Local
      • 이름 그대로 특정 범위 내에서만 유효
      • 함수 내부에서 선언된 변수나 함수가 주로 속함
    • Enclose
      • 중첩된 함수가 존재하는 경우 적용
      • 부모 함수에서 선언된 변수는 중첩 함수 내부에서도 유효
    • Module
      • Global 이라고도 표현하며, 이름그대로 해당 선언이 이루어진 지점 밑으로는 전부 유효
    • Builtin
      • 가장 광범위한 scope로서 파이썬에 내장된, 기본 제공함수들이 포함된 scope
      • 예를 들면 길이를 리턴하는 len() 같은 함수들

scope 범위 개념

  • shadowing
    • 더 넓은 scope를 가진 변수가 좁은 scope를 가진 변수에게 가려지는 것
    • 동일한 이름의 변수를 선언할 경우 발생한다.
a = 9

def shadow():
    a = 1
    print(a)

shadow()
print(a)

#################
#실행 결과
1
9

 

'프로그래밍 > Python' 카테고리의 다른 글

Conda 기본  (0) 2020.07.29
Python - Class  (0) 2020.07.23
Python - Decorator  (0) 2020.07.22
Django 기본  (0) 2020.07.07
Pyinstaller 사용해서 PyQt5 UI포함한 실행파일 빌드 방법  (2) 2020.06.26