본문 바로가기
Python/Python 기초

[파이썬완전기초] 반복문

by 찐남 2021. 7. 24.
본 포스팅은 2021 NIPA AI 온라인 무료 교육의 AI 실무 기본 과정을 기반으로 작성하였습니다.

 

1. 반복문


반복문은 여러 유사한 명령문 반복적으로 실행할 때, 간단하게 작성 가능한 문장입니다. 구구단 중 9단을 출력하는 프로그램을 작성한다고 해보죠? print 함수만을 이용한다면, 아래와 같이 작성할 수 있을 것입니다.

print("9 * 1 = 9")
print("9 * 2 = 18")
print("9 * 3 = 27")
print("9 * 4 = 36")
print("9 * 5 = 45")
print("9 * 6 = 54")
print("9 * 7 = 63")
print("9 * 8 = 72")
print("9 * 9 = 81")


출력결과는 아래와 같습니다.

9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81


비슷한 듯 다른 명령문을 9번 작성해야 합니다. 이를 효율적으로 작성하려면 어떻게 할까요? 반복문을 이용하면 됩니다. 상기 실행문을 반복문을 이용해서 간단하게 작성한 결과는 포스팅 마지막에 알려 드리겠습니다.



2. for 문


파이썬의 반복문 작성에 많이 활용되는 명령어는 for 문입니다. 표현식은 아래와 같습니다.

for 변수명 in 시퀀스 :
___명령문1
___명령문2
___ ...


변수명에 시퀀스 내에 있는 원소의 값을 하나씩 대입시키면서, 아래의 명령문들을 수행합니다. 들여쓰기 잊지 마세요. 아래 예제를 한번 볼까요?

product = 3

for i in [3,6,9] :
___product = product * i
___print(product)


처음 product에는 3이라는 값이 저장됩니다. 그 다음 i = 3 일때, 아래 두 문장을 수행합니다. 즉, product 변수에 저장되어 있는 3이라는 값에 i (=3)을 곱하여 그 결과를 다시 product(=9)에 저장합니다. 그리고, product에 저장되어 있는 값을 출력합니다. 다시 for 문으로 되돌아 가서 이번엔 i 에 6을 저장하고, 아래 두 문장을 다시 수행합니다. 즉, 9 값이 들어가 있는 product 변수에 i(=6)를 곱하여 그 결과를 다시 product(=54)에 저장합니다. 그리고, product에 저장되어 있는 값을 출력합니다. 다시 for 문으로 되돌아 가서 이번엔 i 에 9을 저장하고, 아래 두 문장을 다시 수행합니다. 즉, 54 값이 들어가 있는 product 변수에 i(=9)를 곱하여 그 결과를 다시 product(=486)에 저장합니다. 그리고, product에 저장되어 있는 값을 출력합니다. 다시 for 문으로 되돌가 가서 i에 다음 값을 저장할려고 하는데, 더이상 원소가 없습니다. 비로서 for문이 종료 됩니다. 실행시켜 보면 결과는 아래와 같이 출력됩니다.

9
54
486


시퀀스에는 숫자 뿐만 아니라 문자열도 가능합니다. 아래 예는 문자열을 구성하는 문자개수가 몇개인지 산출해 보는 프로그램입니다.

temp = 0
for i in 'length' :
___temp = temp + 1
print(temp)


결과는 아래와 같습니다.

6


만약 print 문장을 들여쓰기 한 경우, 어떻게 출력이 될까요? for문에 영향을 받게 되어 아래와 같이 출력됩니다.

temp = 0
for i in 'length' :
___temp = temp + 1
___print(temp) # for 문의 영향 아래에 놓임


1
2
3
4
5
6


만약, 앞의 예시에서 처럼 반복해야 할 횟수가 많다면 어떻게 할까요? 1 부터 100까지 반복하면서 명령문을 처리해야 한다면 일일이 시퀀스에 나열해야 할까요? 물론 아니겠죠. for - range 구문을 활용하면 됩니다.

 

3. for - range 문


우선, range에 대해서 설명드리도록 하겠습니다. range는 '범위'를 뜻하는 영어단어입니다. 단어 뜻에서 알 수 있듯이 범위를 지정해 주면, 그 범위 안에서 연속적인 숫자를 생성해 줍니다.

range(x, y) # x이상 y 미만까지 연속된 숫자반환
range(3, 9) # 3,4,5,6,7,8 반환


만약, range안에 하나의 숫자만 있는 경우에는 숫자 0부터 시작하게 됩니다.

range(5) # 0,1,2,3,4 반환


for 문에서는 아래와 같이 사용할 수 있습니다.

for 변수 in range(x, y) :
___명령문


제일 처음 나왔던 예제 기억하시나요? 구구단 중 9단을 출력하는 프로그램을 단 2줄로 간단히 작성할 수 있습니다.

for i in range(1, 10) :
print("9 * ", i , "= ", 9*i)

(문자와 숫자가 혼합된 출력 방식은 파이썬 첫 포스팅을 참고하시면 됩니다.)

위의 명령문을 아래와 같이 변경하면 어떻게 출력될까요?

for i in range(10) :
print("9 * ", i , "= ", 9*i)


9 * 0 = 0 이 제일 첫 줄에 출력되고, 이하 나머지는 상기 출력물과 동일하게 나옵니다.

9 * 0 = 0
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81



반응형

댓글