Skip to Main Content

파이썬 기초 가이드: 반복문

코딩 학습 가이드는 소프트웨어학과 송오영교수님이 검수하였습니다.

for 반복문

for문은 정해진 횟수만큼 반복합니다. range() 함수로 반복 횟수를 전달합니다.
반복문의 변수 i는 index의 첫 머리글자를 따서 주로 i로 사용합니다.

형식

for 변수 in range(종료값):
    코드    # 4칸 들여쓰기

"hello, world!"를 5번 출력하는 문장을 for문으로 작성하면 다음과 같습니다. range(5)는 0,1,2,3,4의 값을 반환합니다. 반복할 때마다 변수 i에 이 값들을 대입하면서 문장을 반복합니다.
range(5) 함수를 사용할 때 가장 혼동하는 부분이 1에서 5까지의 정수가 생성된다고 생각하는 것입니다. 반복 횟수로 생각하면 5번 반복은 맞으나, 생성되는 정수는 0부터 4까지입니다.

1
2
for i in range(5):
    print("hello, world!")

 

실행결과

hello, world!
hello, world!
hello, world!
hello, world!
hello, world!

형식

for 변수 in range( 시작값, 끝값+1, 증가값):
    코드    # 4칸 들여쓰기

 증가값이 1이면 생략가능합니다.

 

10부터 1까지 반복하려면 range(10, 0, -1)를 사용하면 됩니다.

1
2
for i in range(100-1):
    print(i, end=" ")    # 4칸 들여쓰기

 

실행결과

10 9 8 7 6 5 4 3 2 1

end=" " 를 사용하면 줄이 바뀌지 않고 한 줄에 전부 출력됩니다.

중첩 for문은 for문 내부에 또 다른 for문이 들어있는 형태를 말합니다.

바깥 for문(변수 i)는 2부터 9까지 증가합니다.
안쪽 for문(변수 j)는 1부터 9까지 계속 반복해서 증가합니다.

1
2
3
4
for i in range(2101):
    print("##", i, "단 ##")
    for j in range(1101):
        print(i, "x", j, "=", i*j)

 

실행결과

## 2 단 ##
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
~~ 중간 생략 ~~
9 x 8 = 72
9 x 9 = 81

while 반복문

while문은 for문과 용도가 비슷하지만 약간 다릅니다. while문은 특정한 조건이 만족되면 계속 반복합니다.
while문은 while문 안의 조건을 확인하여 값이 참이면 문장을 수행합니다. 그리고 문장이 끝나면 다시 조건식으로 돌아와 실행을 반복합니다.

형식

while 조건:
    코드    # 4칸 들여쓰기

주로 사용하는 while문의 형태는 다음과 같습니다.

형식

초기식
while 조건:
    반복할 코드      # 4칸 들여쓰기
    변화식           # 4칸 들여쓰기

1부터 10까지의 합계를 구하는 프로그램입니다.

1
2
3
4
5
i, sum = 10
while i < 11:
    sum = sum + i      # 4칸 들여쓰기
    i = i + 1          # 4칸 들여쓰기
print("1에서 10까지의 합 : ", sum)

 

실행결과

1에서 10까지의 합 : 55

while 루프의 조건에 True가 있으면 조건이 항상 참이므로 무한이 반복됩니다. 무한루프를 중지하려면 Ctrl+C를 누릅니다.

형식

while True :
    반복 문장    # 4칸 들여쓰기

while 반복문으로 무한 루프를 만들어보겠습니다.

1
2
while True :
    print("ㅋ", end="")    # 4칸 들여쓰기 

 

실행결과

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
~~ 계속 반복 ~~

ㅋ는 끝나지 않고 계속 출력됩니다. 따라서 Ctrl+C를 눌러 무한 루프를 끝냅니다.

기타 제어문

반복문 안에서 break문을 만나면 바로 반복문을 빠져나갑니다.

무한 루프에서 숫자를 증가시키다가 10이 나오면 반복문이 끝나는 프로그램입니다.

1
2
3
4
5
6
= 0
while True:        # 무한 루프
    i = i + 1      # i를 1씩 증가시킵니다.
    print(i)
    if i == 10:    # i가 10이면
        break      # 반복문을 끝냅니다.

 

실행결과

1
2
3
4
5
6
7
8
9
10

continue문을 만나면 남은 블록은 건너뛰고 반복문의 처음으로 돌아갑니다. continue를 만나면 다시 처음부터 반복문을 수행합니다.

1부터 100까지 숫자 중 홀수만 출력하는 프로그램입니다.
for문을 사용하여 1부터 100까지 반복합니다. 그리고 if를 사용하여 i가 짝수이면 continue를 실행합니다.
i가 짝수이면 continue가 실행되어 print를 실행하지 않고, i가 홀수이면 print가 실행되어 숫자가 출력됩니다.

1
2
3
4
for i in range(11011):   # 1부터 100까지 증가하면서 100번 반복
    if i % 2 == 0:           # i를 2로 나누었을 때 나머지가 0이면 짝수
        continue             # 아래 코드를 실행하지 않고 건너뜁니다.
    print(i)
 

 

실행결과

1
3
5
7
~~ 중간 생략 ~~
96
97
99