[파이썬] 반복문 (for, while)

I. 반복 객체 순환, for 문

  • 원소를 여러 개 가지는 문자열, 리스트 등을 반복 순환 시 for문 사용
for [원소를 꺼낼 변수] in [반복 객체(리스트 등)] :
  원소를 하나씩 꺼내면서 한 번 씩 수행
  모든 원소를 꺼낸 후 for문 종료
  • [예제] 반복 객체 반복문
a = [1, 2, 3, 4, 5]
result = 0

for i in a :     # 리스트 a를 받아서 원소를 하나씩 꺼냄
    result += i

print(result)

[결과]
15
  • [예제] range 클래스를 사용한 반복문
result = 0

for i in range(1,5) :   # 1 부터 5 미만 (1,2,3,4)을 하나씩 꺼냄
    result += i

print(result)

[결과]
10

 

II. 조건식 판단 반복, while문

  • 특정 조건식을 사용하여 조건이 True인 경우 계속 내부 문장을 수행
while [조건식] :
  조건식이 True인 경우 계속 내부 문장 수행
  조건식이 False인 경우 내부 문장을 수행하지 않고 while문 종료
  • [예제] 조건식을 이용한 반복문
result = 0

while ( result < 100 ) : # result 변수가 100이 되면 조건식이 False가 되므로 반복문 종료
    result += 1

print(result)

[결과]
100

 

III. 반복 처리 종료(break)와 배제(continue)

가. 반복 처리 종료

  • 반복 처리 중 반복문을 종료해야 하는 경우 break를 사용
  • [예제] 반복 처리 종료
result = 0

while True :
    if result > 10 :    # result 변수가 10보다 크면 while문 종료
        break
    result += 1

print(result)

[결과]
11

나. 반복 처리 배제

  • 반복 처리 중 건너뛰어야 하는 경우 continue를 사용
  • [예제] 반복 처리 배제
for i in range(1, 10) :
    if i % 2 == 1 :    # i 변수가 홀수이면 처리에서 배제(건너뜀)
        continue
    print(i)

[결과]
2
4
6
8

 

IV. 반복문에 else문 추가

  • 반복문에 else문을 추가해서 반복문이 break로 종료되지 않고 완전히 수행되었는지 확인 가능
  • [예제] 반복문에 else문을 추가하여 완전히 수행되었는지 확인
for i in range(1, 5) :
    print("i = ", i)
else :
    print("정상 종료")

for j in range(1, 5) :
    if j > 3 :
        break
    print("j = ", j)
else :
    print("정상 종료")


[결과] : 두 번 째 for문은 break로 인해 완전히 수행되지 않고 종료된 것을 알 수 있음
i =  1
i =  2
i =  3
i =  4
정상 종료
j =  1
j =  2
j =  3

 

V. 다양한 원소를 갖는 객체의 원소 추출

  • 리스트 객체가 원소와 인덱스 정보를 함께 가져올 때 enumerate를 사용
  • [예제] enumerate 클래스를 이용한 인덱스 정보와 값 맵핑 출력
a = [1, 2, 3, 4, 5]

for i, v in enumerate(a) :
    print("Index : ", i, "Value : ", v)

[결과]
Index :  0 Value :  1
Index :  1 Value :  2
Index :  2 Value :  3
Index :  3 Value :  4
Index :  4 Value :  5
  • enumerate 외 리스트 순서 쌍을 만들 때 itertools, 여러 개의 원소를 묶어 순서 쌍을 만드는 combinations, 특정 3개의 원소를 순서에 맞추어 쌍을 만드는 permutations 사용 가능

 
[참고]

  • 잇플, “한 권으로 개발자가 원하던 파이썬 심화 A to Z”, 2019.11

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^