반응형

안녕하세요

 

스터디에서 같이 공부한 내용을 정리하고자 글을 쓰게 되었습니다~

 

도움되셨으면 좋겠네요!

 

본 글에 나와있는 코드들을 직접 쳐보고 실행시키면서

 

여러가지로 꼬아가며 다양한 실험을 반복하시면 

 

어느새 파이썬이 익숙하고 재밌으실 겁니다~! 화이팅!

 

참고로 중간 중간 걸려있는 링크들은 글을 읽으시면서 모르는 함수, 문법 등이 나왔을 때 들어가셔서

글에 나온 정도만 이해하실 수 있으면 됩니다. (꼼꼼하게 보실 필요 없어요!)

 

1. 파이썬 반복문 - for문 (기초)

 (1) range 함수의 이용

  ① range 란?

   python에서 range 함수는 말그대로 "범위를 지정하는 함수"라고 생각하시면 될 것 같습니다.

보통 위의 그림과 같이 range('시작', '끝', '간격')의 문법 사용하는데요. 이때 중요한 2가지는

 

첫번 째, '시작'과 '간격'의 경우 생략할 수 있으며 생략시 자동적으로 각각 0, 1로 인식된다.

두번 째, '끝'의 경우 해당 숫자는 포함하지 않는다. (미만)

 

이 점에 유의하여 range함수의 사용 예시를 보시죠.

 

 

 위의 예시의 경우 숫자 range에 인자가 1개만 들어가는 경우 입니다.

이때 값은 "끝"으로 인식되며 위 예시인 range(10)의 경우 0이상 10미만 (간격은 1) 로 인식이 되는 것이죠.

따라서 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 의 값을 차례대로 반환하게 됩니다..!

 

 

 위의 예시의 경우 숫자 range에 인자가 2개만 들어가는 경우 입니다.

이때 값은 "시작"과 "끝"으로 인식되며 위 예시인 range(2, 10)의 경우 2이상 10미만 (간격은 1) 로 인식이 되는 것이죠.

따라서 2, 3, 4, 5, 6, 7, 8, 9 의 값을 차례대로 반환하게 됩니다..!

 

 

 위의 예시의 경우 숫자 range에 인자가 3개 모두 들어가는 경우 입니다.

이때 값은 "시작"과 "끝", "간격"으로 인식되며 위 예시인 range(1, 10, 2)의 경우 1이상 10미만 (간격은 2) 로 인식 됩니다.

따라서 1, 3, 5, 7, 9 의 값을 차례대로 반환하게 됩니다..!

 

 

 

이제 이러한 range를 활용해서 for문에 적용 시켜 보겠습니다.

 

 

 

  ② range의 for문 활용

# 예제 1 / 인자가 1개만 들어간 range를 이용한 for문의 활용

for i in range(10) :
    print(i, end = ' ')

 

# 예제 2 / 인자가 2개만 들어간 range를 이용한 for문의 활용

for i in range(2, 10) :
    print(i, end = ' ')

# 예제 3 / 인자가 3개 모두 들어간 range를 이용한 for문의 활용

for i in range(1, 10, 2) :
    print(i, end = ' ')

  range 함수의 사용법만 알고 계셔도 이를 for문에 적용시키시는 건 그리 어렵지 않습니다.

따라서, 위의 예시를 따라 써보시면서 "시작", "끝", "간격" 값에 변화를 주시면 금방 익숙해지실 겁니다!

 

이제 이러한 for - range 문법을 리스트의 인덱스 관점에서 적용시켜보겠습니다~

 

 

 

  ③ for문을 이용한 리스트의 인덱스 접근

 

예를 들어, 다음과 같은 리스트를 생각해보겠습니다. (리스트 기초 : https://wikidocs.net/14)

이때, 리스트의 인덱스 번호는 "0부터 시작하므로" 다음과 같은 인덱스를 가지게 됩니다.

그렇다면, 앞서 배운 for - range 문법을 이용하여 리스트의 인덱스에 어떻게 접근할 수 있을까요?

인덱스가 0~9로 이루어져 있으므로 시작은 0 / 끝은 10 (미만이므로) 으로 range 함수를 쓰시면 됩니다!

즉, 아래와 같은 코드를 짜게 되면 리스트의 모든 인덱스에 접근할 수 있습니다.

Lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 리스트 선언

for i in range(10) : # i : 0~9
    print(Lst[i], end = ' ') # Lst[i]

 

 마지막으로 다음 문제를 직접 해결해 보시면 for문에서 range를 활용하는 데는 어려움이 없으실 겁니다.

 

문제 : "위의 리스트(1~10) 값 중 짝수값만을 출력하는 for - range 문을 작성하시오."

천천히 고민해 보시면 좋을 것 같습니다. (HINT : range함수의 간격)

 

 

 

정답은 아래에 올려 놓겠습니다~

 

 

Lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 리스트 선언

for i in range(1, 10, 2) : # i : 1 부터 10 미만의 수를 간격 2로 !
    print(Lst[i], end = ' ') # Lst[i]

 

 

 

다음 시간에는 for문 - List 이용 방법을 알아보겠습니다

 

 

 

반응형