def print_menu():
print '1. Phone Number Print'
print '2. Phone Number Add'
print '3. Phone Number del'
print '4. Phone Number Search'
print '5. Exit'
def print_dic(numbers):
print "Phone number : "
for name in numbers:
print "name: ",name,"\tNumber: ",numbers[name]
def add_member(numbers):
print "Phone Number Add"
name = raw_input("name : ")
phone = raw_input("Number : ")
numbers[name] = phone
def remove_member(numbers):
print "Phone Number del"
name = raw_input("name : ")
if name in numbers:
del numbers[name]
else:
print name," No"
def lookup_member(numbers):
print "Phone Number Search"
name = raw_input("name : ")
if name in numbers:
print "Number : ",numbers[name]
else:
print name,"No Search"
#---------------------------------------------------------main
numbers = {}
menu_num = 0
print_menu()
while menu_num !=5:
menu_num = raw_input("Number Input Plz (1-5): ")
if menu_num == 1:
print_dic(numbers)
elif menu_num == 2:
add_member(numbers)
elif menu_num == 3:
remove_member(numbers)
elif menu_num == 4:
lookup_member(numbers)
elif menu_num == 5:
print_menu
실행형태는 다음 이미지와 같습니다.
프로그램이 제대로 작동을 하지 않습니다.
메뉴를 선택하는 숫자를 입력하였음에도 불구하고 계속 입력받는 루틴만 반복이 됩니다.
문제는 if문 조건에 있습니다.
입력받는건 문자열 취급을 받는 숫자인데 숫자와 비교를 하여 if문이 실행을 하지 않았던 것 입니다.
또 5번을 누르면 종료를 해야하는데 종료는 하지 않고 메뉴를 출력해주는 이상한 코딩이 되어있습니다.
그래서 저는 아래와 같이 바꾸었습니다.
def print_menu():
print '1. Phone Number Print'
print '2. Phone Number Add'
print '3. Phone Number del'
print '4. Phone Number Search'
print '5. Exit'
print
def print_dic(numbers):
print "Phone number : "
for name in numbers:
print "name: ",name,"\tNumber: ",numbers[name]
print
def add_member(numbers):
print "Phone Number Add"
name = raw_input("name : ")
phone = raw_input("Number : ")
numbers[name] = phone
def remove_member(numbers):
print "Phone Number del"
name = raw_input("name : ")
if name in numbers:
del numbers[name]
else:
print name," No"
def lookup_member(numbers):
print "Phone Number Search"
name = raw_input("name : ")
if name in numbers:
print "Number : ",numbers[name]
else:
print name,"No Search"
#---------------------------------------------------------main
numbers = {}
menu_num = 0
print_menu()
while menu_num !=5:
menu_num = raw_input("Number Input Plz (1-5): ")
if menu_num == '1':
print_dic(numbers)
elif menu_num == '2':
add_member(numbers)
elif menu_num == '3':
remove_member(numbers)
elif menu_num == '4':
lookup_member(numbers)
elif menu_num == '5':
break;
아래 이미지는 실행 결과 입니다.
제가 쓰는 버전은 2.5.2 버전 입니다. 다른 버전에서는 어떻게 될지 잘 모르겠으나 적어도 제가 쓰는 2.5.2 버전에서는 이러한 현상이 나타났습니다.
'[+] Information > [-] Python' 카테고리의 다른 글
level 1 (0) | 2011.10.23 |
---|---|
level 0 (0) | 2011.10.23 |
두번째 연습문제. (2) | 2009.07.17 |
파이썬 연습문제.(while) (0) | 2009.07.16 |