파이썬 카운트 증가 - paisseon kaunteu jeung-ga

파이썬의 제어문(반복문)

제어문에는 기본적으로 while 문과  for 문이 있지만 오늘은  while문에 대해 알아보자

while 문은 조건문이 참인 동안에 while문 아래에 속하는 문장들이 반복해서 수행된다.

파이썬을 사용하는 사람들이 주의해야할 점은.

1. print 는 줄 라인이 딱 맞아야 반복문에 포함이 된다.

   즉 들여쓰기가 맞아야 한다.

2. C언어 방식을 사용하더라도 C언어와는 다르게 % 앞에 , 를 쓰면 에러가 난다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 1] While 문

count 라는 변수에 숫자 0을 대입시킨다.

while count <10 :

-> while문을 통해 count 가 10보다 작을 때 실행

count +=1 

-> print 되기 전에 count값이 1씩 증가한다

print("%d Dongtan Boy" %count)

-> %d 자리에 count의 값이 들어간다

print("======end=======") 

-> count가 10이되면 자동으로 종료.

[그림 1] 을 보면 결과값을 확인할 수 있다.

print보다 위에 count +=1 이 있기 때문에 0부터가 아닌 1부터 실행되는것이다.

즉 출력하기 전에 +1이 되므로 0~9까지 실행이 아니라 1~10까지 실행되는 것이다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 2] 변수 값 위치

이렇게 print 밑에 변수값인 count +=1 을 넣게 되면 0에서부터 1씩 증가하게 된다.

print로 값을 먼저 출력한 후에 증가시키겠다는 의미이다.

count 의 위치에 따라 시작이 0인지 1인지 달라지기 때문에 주의해야 한다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 3] 변수 기본 값을 1로 설정

변수의 기본값을 0이 아닌 1을 대입했을 때

print 위에 count +=1 을 넣게 된다면 출력되기 전에 +1이 되어 2부터 실행되기 때문에 주의해야 한다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 4] While을 통한 반복문

[그림 4] 또한 같은 원리이다.

treeHit 라는 변수에 0 을 주고 print("열번찍어 안넘어가는 나무 없다")라는 문장을 출력한다.

그런다음 while 문을 사용하여 조건을 준다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 5] While 문을 통한 반복문

number의 값이 4가 아니면 계속 반복한다.

print(prompt) 로 인해 prompt 변수를 출력한다.

number = int(input("enter the number:"))    사용자 입력값을 정수형으로 형변환.

4를 입력했을 때 프로그램이 종료되는 것을 확인할 수 있다.

Continue

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 6] Continue문

Continue 문을 사용하여 a라는 변수가 10이 될때까지 1씩 증가하여 출력된다.

[그림 6]을 보면 a가 1부터 10까지 출력되는 것을 확인할 수 있다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 7] 특정 숫자 제외

순서를 바꾸면 5를 건너 뛰고 출력하므로 주의해야 한다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 8] Break를 통해 반복문 종료

break를 쓰면 바로 out이 된다.

if 문에서 많이 사용하며 라인이 꼭 맞아야 한다. 안그러면 5까지 출력한다

만약 실수로 무한루프에 빠지게 된다면 Ctrl + c 를 누르면 된다.

구구단

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 9] 구구단

i의 값을 1씩 증가시켜서 1부터 9까지의 곱셈식을 출력한다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga
[그림 10] input 함수 사용하여 응용하기

사용자가 원하는 구구단을 출력하기 위하여 input 함수를 사용한다.

위의 [그림 9]와 같은 방법으로 i 의 변수 값은 1부터 9까지 증가하여

사용자가 입력한 값의 곱셈식을 나타낼 수 있다.

앞서 숫자형 데이터를 공부하면서 황금알을 낳는 거위에 대해 이야기한 적이 있다. 황금알의 수를 세기 위해서 같은 계산을 계속해서 반복해주어야 하는데, 같은 것을 계속 반복하는 것만큼 지루한 일은 없다. 프로그래밍을 할 때도 같은 과정을 계속해서 코딩한다면 상당히 지루한 작업이 될 것이다. 이러한 경우에 사용되는 것이 반복문이다.

반복문은 지정한 횟수만큼 또는 무한으로 코드를 반복하게 만들어준다. 반복문을 사용하면 사람이 계산하기에는 많은 시간이 소요되는 일도 빠르게 처리할 수 있다. 반복문의 종류는 크게 for 문, while 문 두 가지로 나눌 수 있다. 반복문을 사용하기 위해서는 반복되는 것이 무엇이고, 어떤 규칙을 가지고 반복되는지 파악해야 한다. 다음 그림에서 반복되는 것은 무엇이고, 어떤 규칙을 가지고 반복되고 있을까?

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

1for 문

가. for 문 알아보기

주로 사용하는 for 문의 형식은 다음과 같다.

for 변수 in range(시작값, 끝값+1, 증가값):

    반복되는 부분

range 함수는 지정된 범위의 값을 반환한다. 1부터 10까지 수의 합을 for 문을 이용해 구한다면 다음과 같다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

예제 코드, 5for1.py

i=0

sum=0


for i in range(1, 11, 1):

    sum=sum+i


print("1에서 10까지 자연수의 합은: %d" % sum)

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

실행결과

>5for1.py

1에서 10까지 자연수의 합은: 55

1행과 2행에서는 i와 sum을 0으로 정했다. 그리고 4행과 5행이 반복된다. 처음에는 i 값 1을 현재 sum의 값인 0과 더해 다시 sum에 대입한다. 두 번째 반복될 때에는 i 값 2를 현재 sum 값인 1과 더해 다시 sum에 대입한다. 0+1=1, 1+2=3, 3+3=6, 6+4=10과 같은 과정이 10번 반복되면 1에서 10까지 더한 값이 sum에 들어가게 된다. 1부터 10까지 수의 합은 단순히 덧셈을 통해 계산하더라도 많은 시간이 걸리지는 않는다. 하지만 만약 1부터 10,000까지 수의 합을 구한다고 할 때, 이것을 일일이 계산하기에는 너무 많은 시간이 소요된다. 이것이 반복문을 사용하는 가장 큰 이유이다.

나. 코딩해 보기

1) for 문을 사용해서 1부터 10까지 자연수 중 홀수의 합을 구할 수 있도록 코딩해 보자.

i=0

sum=0


for i in range(1, 11, 2):

    sum=sum+i


print("1에서 10까지 자연수 중 홀수의 합은: %d" % sum)

2) 정수형 변수 a를 입력받고 for 문을 사용해서 1부터 입력한 수까지의 합을 구할 수 있도록 코딩해 보자.

i=0

sum=0

a=int(input("정수를 입력해 주세요.:"))


for i in range(1, a+1, 1):

     sum=sum+i


print("1에서 %d까지 자연수의 합은: %d" % (a, sum))

2while 문

가. while 문 알아보기

for 문은 반복할 횟수를 range()에서 정한 다음 그 횟수만큼 반복했지만, while 문은 조건식이 참이면 명령을 수행한다. 참인 경우 실행하는 명령이 끝나는 곳에서 다시 조건식으로 돌아와 실행을 반복하는 형식을 취한다. 따라서 for 문이 range() 안의 범위가 지정된 만큼 반복이 이루어진 반면 while 문에서는 시작 값과 끝 값이 없으므로 같은 역할을 하는 문장을 다른 위치에 넣어 사용한다. 주로 사용하는 while 문의 형태는 다음과 같다.

변수=시작값

while 변숫값<끝값:

    반복되는 부분

    변수=변수+증가값

앞서 공부했던 1부터 10까지 수의 합을 while 문으로 구현하면 다음과 같다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

예제 코드, 5while1.py

i=0

sum=0


i=1

while i<11:

    sum=sum+i

    i=i+1


print("1에서 10까지 자연수의 합은: %d" % sum)

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

실행결과

>5while1.py

1에서 10까지 자연수의 합은: 55

1행과 2행에서 변수 i와 sum의 초깃값을 0으로 정한다. 4행에서 i를 1로 지정했다. 5행에서 i가 11보다 작으면 참이므로, i가 10일 때까지 6, 7행이 반복된다. 결국 sum은 1+2+3+…+10의 값이 되므로 55라는 결과가 나온다.

나. 무한 반복 while 문

while 문에서 무한 반복을 사용할 수 있는데, 무한 반복을 적용하려면 while 조건식을 True로 지정하면 된다. 다음은 간단한 무한 반복 while 문이다. 무한 반복을 중지하려면 컨트롤+c 버튼을 눌러주면 된다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

예제 코드, 5while2.py

sum=0

a, b=0, 0


while True:

    a=int(input("첫 번째 수를 입력해주세요.:"))

    b=int(input("두 번째 수를 입력해주세요.:"))

    sum=a+b

    print("%d+%d=%d" % (a, b, sum))

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

실행결과

>5while2.py

첫 번째 수를 입력해주세요.:1

두 번째 수를 입력해주세요.:2

1+2=3

첫 번째 수를 입력해주세요.:3

두 번째 수를 입력해주세요.:4

3+4=7

(계속 반복)

while의 조건식을 True로 하면 무한 반복을 사용할 수 있다. 이 프로그램을 실행하면 4행의 무한 반복문 때문에 5~8행이 무한 반복되는 것을 확인할 수 있다.

3기타 제어문

가. break 문

break 문은 반복문에서 자주 사용된다. for 문은 range() 함수에서 지정한 범위를 벗어나면 종료되며, while 문은 조건식이 False가 되거나 무한 반복의 경우 컨트롤+c를 누르면 프로그램이 종료되었다. 이 외에도 break 문을 사용하면 반복문을 빠져나갈 수 있다. 다음은 break 문이 사용되어 반복문을 벗어나는 예이다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

예제 코드, 5break1.py

sum=0

a,b=0,0


while True:

    a=int(input("첫 번째 수를 입력해주세요.:"))

    b=int(input("두 번째 수를 입력해주세요.:"))

    sum=a+b

    if sum>100:

        break

    print("%d+%d=%d" % (a,b,sum))

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

실행결과

>5break1.py

첫 번째 수를 입력해주세요.:1

두 번째 수를 입력해주세요.:2

1+2=3

첫 번째 수를 입력해주세요.:1

두 번째 수를 입력해주세요.:100

>>>

앞서 공부했던 a와 b의 값을 입력받아 합을 구하는 무한 반복문이다. 하지만 8행의 조건을 만족하는 경우 즉, 두 수의 합이 100보다 크다면 break가 실행되어 while 문을 탈출하게 된다.

나. continue 문

continue 문을 만나면 남은 명령에 관계없이 다시 반복문의 처음으로 돌아간다. 다음은 continue 문이 사용된 예이다.

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

예제 코드, 5continue1.py

i=0

sum=0


for i in range(1, 11, 1):

    if i%2==0:

        continue


    sum=sum+i


print("1에서 10까지 자연수 중 홀수의 합은: %d" % sum)

파이썬 카운트 증가 - paisseon kaunteu jeung-ga

실행결과

>5continue1.py

1에서 10까지 자연수 중 홀수의 합은: 25

앞서 공부했던 1부터 10까지 자연수의 합을 구하는 식에서 1부터 10까지 자연수 중 홀수의 합을 구하는 프로그램이다. i가 2로 나누어떨어질 경우, 즉 짝수인 경우에는 continue 문을 만나서 변수 sum은 더해지지 않고, i에만 1을 더한 후 다시 조건 4행의 반복문으로 돌아가게 된다.