C급 개발자와 함께하는 파이썬
4. 제어문 다루기
4.3 for
우리는 1부터 10까지 더하는 프로그램을 작성할수도 있습니다. 이런경우 아래와 같이 코드를 작성할수 있습니다.
코드를 분석하면 num1이라는 변수에 1을 할당하고 num2에 2를 할당 .. num10에 10을 할당하여 모두 더하면 아래와 같이 답을 얻을수 있습니다.
“1에서 10까지 더한값은 55입니다.” 와 같은 결과를 얻을수 있습니다. 그런데 1에서 10까지가 아니라. 1에서 56까지 더한다거나 4에서 100까지 더한다거나 하면 그것을 변수로 하나하나 만들어서 너무 많은 변수를 만드는 것은 아래와 같이 대단히 비효율적이고 프로그램으로 만드는 의미도 없을것입니다.
이러한 경우는 for문을 사용하여 프로그램을 간단하게 만들어보자.
합계를 나타낼 total에 0을 대입해서 초기화하였습니다. for i in range(10) 코드는 range(10)으로 부터 i에 값을 가져왔습니다. 가져온 i는 total = total + i로 합계를 늘려나갔으며 total = total + i 는 totla += i와 같은 형식으로 사용할수 있습니다. 두개의 코드는 완벽하게 같는 코드 입니다.
합계를 만드는 종류는 다양하게 있습니다.
이번에는 덧샘을 시작할 숫자와 마지막 숫자를 입력받아 결과를 출력하는 프로그램을 만들도록 하겠습니다.
-
덧샘할 초기 숫자를 입력해 주세요.
-
덧셈할 마지막 숫자를 입력해 주세요.
-
100에서 200까지 더한 결과값은 000 입니다.
-
만약 초기숫자가 마지막 숫자보다 큰경우는 “초기 숫자가 마지막 숫자보다 커서 계산을 실행할수 없습니다.” 메시지를 출력한다.
덧샘에 필요한 숫자를 입력받습니다. 처음 숫자와 마지막 숫자가 맞지 않는 경우 오류메시지를 출력하고 exit()를 통해서 프로그램을 종료시킨다.
range(start_num, end_num)은 range값을 초기값과 마지막값을 세팅하고 가져오도록 한다.
결과를 확인해보면
24와 99를 넣은 결과는 4674로 나옵니다. 계산기를 두드려 확인해보세요. ㅋ
초기값이 마지막값보다 큰 44, 22를 입력하자 입력한 숫자가 정상적이지 않다는 “초기 숫자가 마지막 숫자보다 커서 계산을 실행할수 없습니다.” 메시지가 출력되었다.
이번에는 짝수만 더하는 코드를 작성해 보도록 하겠습니다.
위의 코드를 보면 if(i % 2 != 0 ) : continue 라는 코드가 있는데 해당코드는 다음과 같습니다. % 연산자는 나머지 값을 리턴하는 연산자인데 여기에서 0이외의 값을 리턴했다는것은 짝수가 아니라는 뜻입니다. 그리고 continue라는 제어문은 루프문에서 while 또는 for 문에서 continue를 만나면 이후 코드는 실행하지 않고 loop문의 처음으로 가는것을 알수 있습니다.
실행결과는 위와 같이 정상적으로 작동하는것을 확인할수 있습니다.
4.4 요약
파이썬에서 제어문은 대단히 중요합니다. 파이썬 뿐만아니라 프로그래밍 언어에서 제어문은 알고리즘을 이해하고 프로그래밍을 하기위해서는 기본이 되는 내용입니다. 꼭 숙지하여 이후 프로그래밍을 해나가는데 어려움이 없기 바랍니다.