파이썬 반복문 while 루프 for 루프 | 파이썬 독학 3-1

파이썬의 반복문에는 for문과 while문이 있습니다.

일정한 동작을 반복한다는 영단어 Loop 를 사용하여 For 루프, While 루프 라고 합니다.

파이썬 반복문 while 루프와 for 루프
파이썬 반복문

while 루프

주요내용

1. 파이썬 반복문을 학습합니다.

2. while 루프와 for 루프를 만들 수 있습니다.

while 루프는 다음과 같은 문법입니다.

while 조건식:
    코드블록

파이썬 들여쓰기(Indentation)

파이썬은 들여쓰기로 블록의 범위를 결정합니다.

들여쓰기는 공백을 의미합니다.

파이썬 스타일 가이드인 PEP8에서는 들여쓰기를 공백 4칸을 권장합니다.

파이참을 비롯한 대부분의 IDE에서 엔터키로 줄바꿈시 자동으로 들여쓰기 합니다.

while 루프의 형식

count = 0
while count < 5:
    print(count)
    count += 1
 
[실행결과]
0
1
2
3
4

count 가 5보다 작은 경우 조건식은 참(True)을 반환하고 들여쓰기한 코드블록을 실행합니다.

count += 1 은 자기자신에게 1을 더하는 식입니다. 0부터 4까지 출력 후 count는 5가 됩니다. count < 5 는 거짓(False) 이므로 반복문을 종료합니다.


단순한 구조지만 큰 데이터를 효율적으로 처리할 수 있습니다.

count 는 조건문의 변화를 주는 요소입니다. 0부터 1씩 증가시키면 5에서 while 문을 종료시킬 수 있습니다. 아래의 테이블을 보면 count 가 5가 되고 조건식을 검사하는 순간 while문은 종료합니다.

countcount < 5
0True
1True
2True
3True
4True
5False

루프라는 개념이 낯설다면 위와 같은 테이블을 그려보는 것이 도움이 됩니다. 총 5번의 조건식 검사가 있었고 while문 종료시에 count 변수의 값은 5입니다.

while 반복문을 사용하는 방법은 다양합니다. 아래의 코드는 조건식에 문자열을 사용합니다. x[1:] 은 두번째 문자부터 마지막 문자까지 자릅니다. while 루프의 마지막에는 while ”: 이 됨으로써 종료합니다.

문자열 ” 도 조건식을 종료할 수 있는 False로 사용합니다.

x = 'Python'
while x:
    print(x, end=', ')
    x = x[1:]
[결과값]
Python, ython, thon, hon, on, n, 

True 와 False 는 불린형이라는 자료형이지만

조건식에서 False는 문자열은 ” 숫자는 0 인 경우 동일하게 취급합니다.

True 의 경우 문자열은 ” 을 제외한 모든 문자열, 숫자는 0을 제외한 모든 숫자와 같습니다.

a = 3
while a:
    print(a, end=', ')
    a -= 1
[결과값]
3, 2, 1,

for 루프

파이썬의 for 루프는 객체안의 아이템을 순차적으로 처리합니다. 파이썬의 for 루프는 문자열, 리스트, 튜플 등 처리할 수 있는 객체의 범위가 넓습니다.

기본 형식은 아래와 같습니다.

for 아이템 in 객체:
    코드블록

객체안의 아이템을 순서대로 마지막까지 꺼내어 코드블록을 처리합니다. 루프의 횟수는 곧 객체안의 아이템 개수와 같습니다.

range 함수

다음은 숫자를 순차적으로 꺼내기 위한 for문 입니다. 반복하는 횟수를 알고 있을 때 사용합니다. range 함수를 for 문과 함께 사용하면 0부터 n-1 까지 반환합니다.

for i in range(5):
    print(i, end=', ')
[실행값]
0, 1, 2, 3, 4, 

문자열

문자열 객체는 안의 아이템(문자)가 정해져 있습니다. for 문은 객체안의 문자를 하나씩 반환하기 때문에 for 문에 사용할 수 있습니다.

myString = 'Python'
for s in myString:
    print(s, end=', ')
[실행값]
P, y, t, h, o, n,

문자열을 요소로 하는 리스트도 for문의 객체가 됩니다.

myFruit = ["apple", "orange", "watermelon"]
print(myFruit)
[실행값]
['apple', 'orange', 'watermelon']

리스트와 튜플

리스트와 튜플은 객체 내부의 요소 개수가 정해져 있습니다. 따라서 for 문의 객체에 사용이 가능합니다.

myList = [2, 4, 6, 8]
for i in myList:
    print(i, end=', ')
 
print()
myTuple = [(1, 3), (5, 7), (9, 11)]
for (x, y) in myTuple:
    print('(', x, ',', y, ')', sep='')

enumerate 함수

여기서 enumerate 함수를 함께 사용하면 인덱스와 값을 분리할 수 있기 때문에 편리합니다.

myList = ["flower", "table", "pencil"]
for i, v in enumerate(myList):
    print('index:', i, '| value:', v)
[실행값]
index: 0 | value: flower
index: 1 | value: table
index: 2 | value: pencil

pass

pass 키워드는 비어있는 파이썬 반복문을 만들기 위해 사용합니다.

정해진 루프만 돌고 종료합니다.

for i in range(5):
    pass
[실행값]
end of module

요약

파이썬 반복문인 while 과 for 문의 문법과 사용법에 대하여 알아봤습니다.

큰 틀에서 문법이 있고 사용법은 때에 따라 다양하게 바뀔 수 있습니다.

파이썬 반복문을 사용하기 위한 테크닉은 다양하기 때문에 한번에 다 배울 수 없습니다. 조금 진도를 나가다보면 테크닉을 쓰는 맛(?)을 알게되어 일부러 복잡한 코드를 만들고 싶을 때가 있는데 Zen of Python 이 하는 말 처럼 코드는 읽기에 쉬운 것이 좋습니다. (Simple is better than complex)

아직 다양한 기술이 없는 사람도 현재 아는 범위내에서 쉽게 사용하시면 충분합니다. 코드가 오류없이 작동하고 유지보수하기 쉬우면 됩니다.

온라인에서 레퍼런스로 삼을 만한 문서를 즐겨찾기해서 사용하는 것도 도움이 됩니다.

이제 while 과 for 를 사용할 수 있으면 프로그래머의 길에 더욱 가까워진 것입니다! 매일 while 과 for 루프를 사용해 보세요. 실력 향상이 됩니다.

외부참조문서

03-3 for문 – 점프 투 파이썬 (wikidocs.net)

4. More Control Flow Tools — Python 3.9.1 documentation

파이썬 코딩 2-4 | 제어문 | for문

파이썬 코딩 2-5 | 제어문 | for문 구구단, 별모양 도형, enumerate

Leave a Comment