파이썬(PYTHON) 강좌 #3 - 반복문과 구구단 짜기

    본 포스팅은 개발자가 아닌 비개발자분들도 포함하여 진행되는 강의입니다. 그러다보니 개발자분들은 너무 쉬운것을 왜 저렇게 많이 설명하지?라는 생각을 가질 수 있는 점 미리 양해 바랍니다.


    현재 파이썬을 다루는 사람들을 보면 개발자분들도 물론 많지만 데이터 분석이나 통계 등을 하기 위해서 다루는 분들 그리고 최근에는 텐서플로우같은 머신러닝, 딥러닝등을 다루기 위해서 배우는 분들도 있기 때문에 최대한 자세히 쉽게 다루고자 노력하겠습니다.




    For 문을 이용한 반복문 처리


    왠만한 프로그램 언어(C, C++, Java, Python 등등)에는 대부분 For라는 반복문을 제공합니다. 우리가 흔히 프로그램은 2가지만 알아도 왠만큼 다 만들 수 있다라고 합니다.


    그 중에 하나는 제어문(If ~ else)이고, 그리고 오늘 배우게 될 반복문입니다. 물론 이 2가지를 위해서 변수를 이해하고, 간단한 연산 정도는 할 줄 알아야 될 것입니다.


    For 문은 우선 아래처럼 사용합니다

    for 변수명 in range(반복횟수) :

    # 반복하고 싶은 내용들


    처음에는 이해가 안되어도 그냥 외우시면 됩니다. 구구단 외우듯이 저 문구는 그냥 외우세요. 파이썬을 계속 다루게 될 거라면 어차피 수십, 수백, 수천번을 사용하게 될테니까요.


    5번 반복하고, 반복하는 동안 어떤 의미없는 문자열을 출력해보도록 하겠습니다.

    아래는 "Hello World!!" 라는 프로그래머들의 관용적인 첫 문자열을 5번 반복하겠습니다.

    for i in range(5):
    print("Hello World!!"); # tab 키로 들여쓰기를 합니다.


    위 내용은 5번 문자열인 "Hello World!!"를 반복하는 내용인데 결과는 당연히 아래와 같이 나오게 됩니다.

    Hello World!!

    Hello World!!

    Hello World!!

    Hello World!!

    Hello World!!


    for문을 위와 같이 단순히 쓰는 방법도 있지만, 반복과 변수에 대한 세부적인 세팅을 하는 방법이 있으며 이와 같이 사용하는 것을 권장합니다.


    for 변수명 in range(변수시작값, 변수종료값) :

    # 반복하고 싶은 내용들


    첫번째 방법은 도무지, i라는 값에 대해서 우리는 어떠한 값이 세팅되었는지 알수가 없었습니다. 그러나 위와 같이 값을 세팅하게 되면 i가 어떤 값으로 시작이 되고, 어떤 값일때 종료가 되는지 쉽게 알 수 있을 것입니다.

    for i in range(1, 5):
    print(i, "Hello World!!"); # tab 키로 들여쓰기를 합니다.


    위와 같이 프로그램을 시작하면 어떻게 출력이 될까요? 시작값은 1이고, 종료값은 5가 되니 대충 5번 정도 반복이 될 것이라 생각할 수 있습니다.


    1 Hello World!!

    2 Hello World!!

    3 Hello World!!

    4 Hello World!!


    그러나 정답은 4번만 반복을 하게 됩니다. for문은 변수가 변수 종료값에 도달이 될 경우 반복문을 탈출하게 되어 있습니다. 1부터 4까지는 모두 정상적으로 5보다 낮은 값이니 출력이 되었지만 i가 5가 되는 순간 5보다 작지 않아서 for문을 종료하게 됩니다.


    For문을 2번 중첩하여 쓸 수도 있습니다. 아래는 이중 For문의 예시입니다.

    for i in range(1, 6):
    print(i, "Hello World!!"); # tab 키로 들여쓰기를 합니다.
    for j in range(1, 6):
    print(j, "Bye World!!"); # tab 키로 들여쓰기를 합니다.




    위의 소스를 실행하면 아래와 같이 결과를 출력하게 됩니다.


    1 Hello World!!

    1 Bye World!!

    2 Bye World!!

    3 Bye World!!

    4 Bye World!!

    5 Bye World!!

    2 Hello World!!

    1 Bye World!!

    2 Bye World!!

    3 Bye World!!

    4 Bye World!!

    5 Bye World!!

    3 Hello World!!

    1 Bye World!!

    2 Bye World!!

    3 Bye World!!

    4 Bye World!!

    5 Bye World!!

    4 Hello World!!

    1 Bye World!!

    2 Bye World!!

    3 Bye World!!

    4 Bye World!!

    5 Bye World!!

    5 Hello World!!

    1 Bye World!!

    2 Bye World!!

    3 Bye World!!

    4 Bye World!!

    5 Bye World!!


    For문을 사용할 때는 들여쓰기를 꼭 주의하기 바랍니다. for에는 콜론(:)을 쓰게 되는데 콜론 다음에 있는 내용은 꼭 들여쓰기를 해야 정상적으로 프로그램이 작동됩니다. 들여쓰기를 안할 경우 에러가 출력되게 됩니다.


    for i in range(1, 6):
    print(i, "Hello World!!"); # tab 키로 들여쓰기를 합니다.
    for j in range(1, 6):
    print(j, "Bye World!!"); # tab 키로 들여쓰기를 합니다.


    들여쓰기를 안한 위 소스를 실행하면 아래와 같이 에러가 출력이 됩니다.


        print(j, "Bye World!!");  # tab 키로 들여쓰기를 합니다.

            ^

    IndentationError: expected an indented block


    위 에러의 내용은, 상당히 자주 볼 수 있는 에러이니 꼭 기억해 두시기 바랍니다.



    구구단 짜보기


    프로그램을 배울 때 꼭 거쳐가야 하는 것이 몇가지 있는데 그 중 한가지는 구구단을 짜보는 것입니다. For문을 배우면 무조건 해보는 것이고, For문을 이해하기 상당히 좋으니 한번 구구단을 직접 짜보시기 바랍니다.


    2 곱하기 1 은(는) 2 입니다.


    위와 같은 형식의 구구단을 파이선으로 한번 안보고 프로그래밍 해보시기 바랍니다.



    정답 소스

    for i in range(2, 10):
    for j in range(2, 10):
    print(i, " 곱하기 ", j, " 은(는) ", (i*j), " 입니다.");


    이상 For문을 배워봤고, 구구단도 코딩을 통해서 구현을 해봤습니다.

    다음은 제어문을 배워보도록 하겠습니다. 사실상 제어문과 반복문만 알면 프로그램의 상당수가 커버 될 정도이니 제어문 이후부터는 몇몇가지 간단한 실정을 해보도록 하겠습니다.


    댓글

    Designed by JB FACTORY