반응형

다른 언어들과 마찬가지로 파이썬에서도 사용되는 반복문 For과 While을 알아보도록 하겠습니다.

1. For 문

for문은 컬렉션의 요소를 순서대로 반복하면서 루프의 명령을 실행하는 반복문이다. 컬렉션은 여러 개의 값을 모아 놓은 집합인데 리스트나 문자열이 대표적이다. 기본형식은 다음과 같다.

<기본 형식>

for (변수명) in (범위 또는 배열의 변수):

반복할 명령

 

ex) "Hello World" 10번 출력하기

for i in range(10):
    print("Hello World")

for 문 에서는 range함수가 자주 쓰이는데 이 함수는 범위를 설정해 주는 함수이다.

<기본 형식>

range(시작, 끝, 증가값)

range(a,b) 라면 a이상, b미만의 범위를 말한다.

즉, a에서 b-1의 범위내의 숫자 (a, a+1, a+2 , .... , b-1)

range(a,b,c) 라면 a이상, b미만의 범위, 증가값은 c를 뜻한다.

즉, a에서 b-1의 범위내의 숫자 (a, a+c, a+2c, a+3c, ... )

range(i) 경우 0부터 i-1 까지의 범위를 말한다.

range(0,5) 는 0, 1, 2, 3, 4 를 뜻하고 range(5)와 같다.

range(0,11,2) 는 0, 2, 4, 6, 8, 10 를 뜻한다.

ex) 리스트를 이용한 반복 성적 처리

student = [1, 2, 3, 4, 5]

for i in student:
    print(i, "번의 학생 성적 처리완료.")

리스트에는 1부터 5까지의 학생의 번호가 저장되어있으며 for문은 이 리스트의 요소를 i 제어변수에 하나씩 대입하면서 루프를 실행한다.

2. While 문

반복문은 유사한 명령을 계속 실행하는 제어문이다. 일상생활에 비슷한 작업을 반복하는 경우는 굉장히 흔한데 while문은 if문과 형식이 유사하되 명령을 한 번만 실행하는 것이 아니라 조건이 만족하는 동안 계속 실행한다. 반복적으로 처리되는 명령을 루프(Loop)라고 하는데 언젠가는 반복을 끝내야 하므로 (무한 루프 방지) 루프에는 조건의 진위 여부를 바꾸는 명령이 반드시 포함되어 있어야 한다.

<기본 형식>

while (True 또는 False가 되는 조건식):

반복할 명령

ex) 1부터 10 까지 출력

i = 1
while i < 11:
    print(i)
    i += 1

ex) 1부터 100까지의 합 구하기

num = 1
sum = 0

while num <= 100:
    sum += num
    num += 1

print(sum)

num의 값이 101이 되는 순간 루프가 종료되기 떄문에 구해진 합계를 구하면 1부터 100까지의 합을 구할 수 있다.

3. 배열과 반복문

arr = ['apple', 'banana', 'pitch']

과일이름이 담긴 'arr' 라는 배열이 있다고 하자.

1) 배열 자체를 이용 (for 문)

arr = ['apple', 'banana', 'pitch']

for i in arr:
    print(i)

2) 배열의 인덱스를 이용 (for 문)

arr = ['apple', 'banana', 'pitch']

for i in range(0, len(arr)):
    print(arr[i])

3) while 문 이용

arr = ['apple', 'banana', 'pitch']
i = 0
while i < len(arr):
    print(arr[i])
    i += 1

4. Break

반복문은 조건을 만족하는 동안 실행하는 문장이라 일단 시작하면 끝까지 진행한다. 하지만 중간에 어떠한 이유로 반복을 중지하거나 현재 반복을 건너뛰어야 하는 경우가 있는데 이럴 경우 흐름 제어문을 사용한다.

break 명령은 어떤 이유로 더 이상 반복할 수 없거나 반복이 의미가 없어졌다면 반복문(루프)을 즉시 끝내고 다음 명령으로 이동한다. 무조건 탈출하는 것이 아닌 특정한 조건에 탈출하므로 보통 if문과 같이 사용한다.

ex) 불량품 검사 프로그램

length = [100.1, 99.5, 102.1, 100.3, 98.9]

for l in length:
    if (l < 98.5 or l > 101.5):
        print("불량품 발생! (길이 : ",l,"mm )")
        break
    print(l,"mm")
print("검사 종료.")

루프 처리중에 해당 조건을 만족하는 값(위의 예제에서는 비정상적인 데이터)이 있으면 break으로 루프를 탈출하여 반복을 중지한다. 기계 공정에서 100mm의 +-1.5mm의 오차 범위를 넘는 값이 나오면 데이터에 이상이 있음을 감지하고 프로그램을 종료한다.

5. Continue

break 명령은 루프를 탈출하는데 비해 continue 명령은 이번 루프 하나만 건너뛰고 나머지는 계속 수행한다. 현재 반복만 중지하고 루프의 선두로 돌아가 조건을 점검한 후 다음 번 반복을 계속 수행한다. break과 마찬가지로 특정 조건일 때만 실행하므로 보통 if문과 함께 사용된다.

length = [100.1, 99.5, 102.1, 100.3, 98.9]

for l in length:
    if (l < 98.5 or l > 101.5):
        print("불량품 발생! (길이 : ",l,"mm )")
        continue
    print(l,"mm")
print("검사 종료.")

break문 예제의 경우 불량품이 발생하면 바로 프로그램이 종료되는 반면, 위의 예제는 불량품이 발생해도 4번째 5번째 길이를 검사한 뒤 프로그램을 종료한다.

정리하자면 break문은 루프를 빠져나오는 것이고 continue는 하나만 건너뛰고 선두로 돌아가 루프를 계속 실행하는 것이다. 두 명령은 while문에도 똑같이 적용되며 조건에 따라 루프의 계속 실행 여부를 통제한다.

감사합니다.

 

#파이썬#PYTHON#Python#for#while#반복문#range#코딩#독학#개발자#비전공자#break#continue#제어변수#루프#흐름제어문

 

 

반응형

+ Recent posts