2020년 5월 12일
[파이썬] 반복문 (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