파이썬 for문 범위 - paisseon formun beom-wi

파이썬 for문 범위 - paisseon formun beom-wi

범위를 만드는 함수인 range 함수에 대해 알아보겠습니다. 

range 함수를 만드는 방법에는 총 3가지 함수가 있습니다.

1) 0부터 <숫자1>-1 까지의 정수들로 범위를 만드는 경우

range(<숫자1>)

2) <숫자1> 부터 <숫자2>-1 까지의 정수들로 범위를 만드는 경우

range(<숫자1>,<숫자2>)

3) <숫자1> 부터 <숫자2>-1 까지 <숫자3> 만큼의 차이를 가진 정수들로 범위를 만드는 경우

range(<숫자1>,<숫자2>,<숫자3>)

(range 함수로 범위를 만들 때 마지막 범위에 해당하는 숫자는 포함되지 않는 것을 항상 주의해주세요!)

예시를 들어보겠습니다..!!

파이썬 for문 범위 - paisseon formun beom-wi
코드 입력 화면
파이썬 for문 범위 - paisseon formun beom-wi
코드 실행 화면

그렇다면 이번에는 범위와 함께 for 반복문을 어떻게 활용하는지에 대해 알아보겠습니다.

for <범위 내부의 숫자를 담을 변수> in <범위> :

    <코드>

반복문을 n 번 반복하고 싶다면 range() 함수의 매개변수에 n 을 입력하면 됩니다.

i 라는 변수에 범위 내부의 정수들을 차례로 출력하는 예시를 보겠습니다.

이 때, i 를 문자열과 연산하기 위해 str() 함수를 사용해 문자열의 자료형으로 바꿔줍니다.

파이썬 for문 범위 - paisseon formun beom-wi
코드 입력 화면
파이썬 for문 범위 - paisseon formun beom-wi
코드 실행 화면

그렇다면 반복문을 거꾸로 적용하고 싶은 경우는 어떻게 해야할까요?

0번째 1번째 2번째 순서가 아닌, 4번째, 3번째, 2번째와 같은 역방향으로의 반복문을 구현하려면 reversed() 함수가 필요합니다.

reversed(range()) 

위의 코드로 간단하게 구현 가능합니다.

파이썬 for문 범위 - paisseon formun beom-wi
코드 입력 화면
파이썬 for문 범위 - paisseon formun beom-wi
코드 실행 화면

'Hello coding 파이썬'을 참고하여 작성하였음.

파이썬에서 유용하다고 생각하는 기능중 하나는 범위지정 기능입니다.

길이가 100인 리스트가 있을때 10번째 인덱스부터 범위를 지정해서 작업을 하고싶다면

어떻게 할수있을까??


범위 지정


특정지점부터 마지막까지의 범위

리스트에서 특정 범위를 지정하는 방법을 알아봅시다. 1부터 5까지의 숫자를 가지고있는 리스트를

만들고 3번째 요소부터 출력하고자 합니다.

test = [1,2,3,4,5]
test[2:]

==================
[3,4,5]

위의 코드에서 test 리스트의 대괄호안에 콜론기호를 기준으로 왼쪽에 2를 입력하였습니다.

그랬더니 세번째 요소인 3부터 마지막 5까지 출력되는것을 확인할수 있었습니다.

여기서 2는 인덱스 넘버로 리스트를 인덱스 2번부터 나타내겠다 라는것을 의미합니다.

그러면 반대로 숫자가 콜론 뒤쪽에 있으면 어떻게 출력이 될까요?


처음부터 특정지점까지의 범위

test = [1,2,3,4,5]
test[:2]

==================
[1,2]

이번에는 인덱스 2번 이전까지의 값을 출력하고 있습니다.

이러한 범위지정은 리스트가 아닌 다른 시퀀스 자료형에도 사용할수 있습니다. 시퀀스 자료형이란

순서가 있는 변수들의 집합체라고 볼수있습니다. 리스트, 튜플, range, 문자열등이 해당됩니다.

이번엔 문자열에 대해서 범위를 지정하여 출력해봅시다.

test = "Hello Python!!"
test[6:]

========================
"Python!!"

문자열 또한 문자로 이루어진 리스트형태로 볼수있으므로 범위 지정으로 표현이 가능합니다.

"Hello Python!!" 에서 6번째 인덱스인 P부터 끝까지 출력되고 있습니다.


임의의 두 지점사이 범위

처음부터 어느지점까지, 어느지점부터 끝까지 표현이 되는만큼 임의의 두 지점사이의

범위 표현도 가능합니다.


test = list(range(20))
test[5:10]

[5,6,7,8,9]

range() 함수를 이용하여 0부터 19까지의 값을 가지는 리스트를 만들고 범위지정을

인덱스 5번부터 10 이전까지의 범위지정을 하였습니다.

범위지정할때는 인덱스는 첫번째숫자 이상, 두번째 숫자 미만이라고 생각하면 쉽습니다.


범위지정으로 반복문 만들기

위에서 만든 범위지정 방식으로 반복문을 만들어 봅시다.


test = list(range(100))

for i in test[10:15]:
    print("%d" % i)

========================
10
11
12
13
14

0부터 99까지의 값을 가지는 리스트 test 를 범위지정으로 10번인덱스부터 15번 인덱스 이전까지

for 반복문을 수행할수있게 만들어 보았습니다.ㅁ