[강좌] 파이썬 훈련 05 - 주소록 만들기 2

전 강좌에서는 한사람의 정보만 입력하면 자동으로 한사람의 정보가 출력되고 프로그램이 종료되었습니다. 이제 주소록 프로그램의 뼈대를 세우고 살을 붙여나가 보겠습니다. 일단 프로그램의 전체를 보려면 어떤 기능을 구현할지 생각해야 합니다. 우리는 메인 메뉴를 만드는 것으로 뼈대를 세우겠습니다.

일단 프로그램이 한번만 입력되고 종료되는 것부터 해결을 해야할 것 같습니다. 항상 실행된 상태로 있고, 사용자가 원할때에만 종료되게 만들어야 합니다. 다르게 이야기하면 항상 무한반복상태로 프로그램이 실행이 되고, 특정 조건이 되었을때만 종료되게 만들어야 합니다. 무한반복! 우리가 아직 해보지 않았습니다. 그리고 특정 조건! 이것도 아직 해보지 않았습니다. 모든 프로그램은 항상 특정 조건에 따라 다른 실행을 해야합니다. 이것이 여러 프로그래밍 책에서 설명하는 반복문, 비교문입니다.

일단 무한반복부터 알아보겠습니다. 모든 프로그램은 위에서 아래로 실행됩니다. 위에서 아래로만 흘러가면 프로그램은 한번 주욱 실행되면 종료될 것입니다. 어떻게 해서든 위로 다시 올라가야합니다. 그러기 위해서는 반복하고자 하는 라인들을 따로 묶는 작업이 필요할 것입니다. 아래 코드를 보겠습니다.

print("start")
while True:
    print("Hello")
    print("Hello")
    print("Hello")
    print("Hello")
print("end")

무한반복을 할 수 있는 반복문은 While문입니다. 예제의 True로 표기되어있는 부분은 조건입니다. While문은 조건이 참일때 계속 반복해서 실행시켜줍니다. 반복되는 범위는 While문 아래로 들여쓰기 가 되어있는 부분까지입니다. 위 예제를 실행해보면 Ctrl + C를 누르기 전까지 Hello가 반복됩니다. 계속 조건이 참이기때문에 무한히 반복하는 것입니다. 반복을 끝내기 위해서는 어떻게 해야할까요? While문 조건을 거짓으로 만들어야 합니다. 어떠한 조건을 만들어서 강재로 종료를 시켜야 합니다. 문장으로 프로그래밍을 한번 해보겠습니다.

출력해라("Start")
(참)이 참이면 반복해라 :
    출력해라("Hello")
    출력해라("Hello")
    출력해라("Hello")
    출력해라("Hello")
    출력해라("Hello")
출력해라("End")

훨씬 이해하기 쉽습니다. 여기서 이제 문장으로 비교문을 넣어서 종료할 수 있는 조건을 주겠습니다.

출력해라("Start")
(참)이 참이면 반복해라 :
    출력해라("Hello")
    출력해라("Hello")
    출력해라("Hello")
    출력해라("Hello")
    출력해라("Hello")
    n = 숫자로 입력받아라("종료하려면 0을 입력하세요 : ")
    만약, n이 0과 같으면 :
        멈춰라
출력해라("End")

한글로 적으니 많은 설명이 없어도 이해가 가지 않나요? 숫자를 입력받아서 그 값이 0이면 반복을 멈추고 종료되게하는 프로그램입니다. 이제 파이썬 코드로 옮겨보겠습니다.

print("start")
while True:
    print("Hello")
    print("Hello")
    print("Hello")
    print("Hello")
    print("Hello")
    n = int(input("종료하려명 0을 입력하세요 : "))
    if n == 0:
        break
print("end")

거의 동일하게 번역하다시피 프로그램이 완성되었습니다. 위 소스코드를 실행해보시면 숫자를 입력받아서 0이 아니면 계속 Hello가 반복해서 출력됩니다. 0을 입력하면 우리가 원한것 처럼 프로그램이 종료됩니다. 하지만 문제점이 있습니다. 아무것도 입력하지 않고 그냥 엔터를 치거나, 알파벳이나 특수문자등 숫자가 아닌 값을 입력하면 오류를 뱉어내고 죽습니다. 견고한 프로그램이 되려면 이런 불특정한 예외를 잘 막아줘야 합니다. 일단, 우리는 이런 예외처리는 그냥 넘어가겠습니다. 나중에 모든 기능을 구현하고, 하나하나 다듬어나가겠습니다.

우리는 주소록 프로그램의 메인화면을 만들기위한 재료를 다 배웠습니다. 바로 만들어보겠습니다.

while True :
    print("================================")
    print("| 주소록 V.0.1                 |")
    print("================================")
    print("|  1. 추가                     |")
    print("|  2. 수정                     |")
    print("|  3. 삭제                     |")
    print("|  4. 출력                     |")
    print("|  5. 역출력                   |")
    print("|  0. 종료                     |")
    print("================================")
    n = int(input("메뉴 번호를 입력하세요 : "))
    if n == 0 :
        break

어떠신가요? 잘 이해가 되시나요? 프로그램은 처음부터 복잡하게 생각할 필요가 없습니다. 차곡차곡 실력이 쌓이면 나중에는 저절로 복잡한 설계를 할 수 있게 됩니다. 그때까지는 아주 쉽게 하나하나 만들어나가면 됩니다. 차인표가 TV에서 그러더군요. 하루에 1000개씩 푸쉬업을 할 수 있는 비법은 하루에 1개부터 시작해서 하루에 1개씩만 늘려나가면 되다구요. 프로그래밍도 비슷하다고 봅니다. 우리도 메인메뉴에서 무슨 기능을 제공할지 메뉴로 작성을 해 놓았으니, 다음 강좌에서 숨을 불어넣어 실제로 동작하는 코드를 하나씩 작성해보겠습니다.

[강좌] 파이썬 훈련 05 - 주소록 만들기 2 [강좌] 파이썬 훈련 05 - 주소록 만들기 2 Reviewed by Tae-seob Shin on 11월 06, 2018 Rating: 5

댓글 없음:

Powered by Blogger.