1+ import sqlite3
2+
3+ conn = sqlite3 .connect ("phonebook.db" )
4+ cur = conn .cursor ()
5+
6+ def create_table ():
7+ global conn
8+ try :
9+ conn .execute ('create table phonebook (no integer primary key autoincrement, name text, hpno text)' )
10+ conn .commit ()
11+ print ("DB(테이블) 생성 성공" )
12+ except :
13+ print ("DB(테이블) 생성 실패" )
14+ print_menu ()
15+ return
16+
17+ def print_menu ():
18+ print ()
19+ print ("=" * 60 )
20+ print ("1. 조회, 2. 입력, 3. 수정, 4. 삭제, 5. 종료, 6. DB(테이블) 생성" )
21+ print ("=" * 60 )
22+
23+ def phonebook_search ():
24+ global conn , cur
25+ print ("1. 조회" )
26+ a = input ("조회할 이름 또는 전화번호를 입력하세요: " ).strip ()
27+
28+ cur .execute ("select * from phonebook where (name like '%" + a + "%' or hpno like '%" + a + "%') " )
29+ rows = cur .fetchall ()
30+ idx = 0
31+ for row in rows :
32+ print ("[{}] {} {}" .format (row [0 ], row [1 ], row [2 ]))
33+ idx += 1
34+
35+ if idx == 0 :
36+ print ("조회된 자료가 없습니다." )
37+
38+ print_menu ()
39+ return
40+
41+ def phonebook_insert ():
42+ global phonebook
43+ print ("2. 입력" )
44+ a = input ("입력할 이름을 입력하세요: " ).strip ()
45+ b = input ("입력할 전화번호를 입력하세요: " ).strip ()
46+ if a == "" or b == "" :
47+ print ("입력값이 부족합니다. 다시 입력해주세요." )
48+ phonebook_insert ()
49+ return
50+
51+ try :
52+ cur .execute ('insert into phonebook (name, hpno) values(?, ?)' , (a , b ))
53+ conn .commit ()
54+ print ("{} {} 입력 성공" .format (a , b ))
55+ except :
56+ print ("{} {} 입력 실패" .format (a , b ))
57+
58+ print_menu ()
59+ return
60+
61+ def phonebook_update ():
62+ global phonebook
63+ print ("3. 수정" )
64+ a = input ("이름을 입력하세요: " ).strip ()
65+ b = input ("변경할 전화번호를 입력하세요: " ).strip ()
66+ if a == "" or b == "" :
67+ print ("입력값이 부족합니다. 다시 입력해주세요." )
68+ phonebook_update ()
69+ return
70+
71+ try :
72+ cur .execute ('update phonebook set hpno=? where name=?' , (b , a ))
73+ conn .commit ()
74+ print ("{} {} 수정 성공" .format (a , b ))
75+ except :
76+ print ("{} {} 수정 실패" .format (a , b ))
77+
78+ print_menu ()
79+ return
80+
81+ def phonebook_delete ():
82+ global phonebook
83+ print ("4. 삭제" )
84+ a = input ("삭제할 전화번호를 입력하세요: " ).strip ()
85+ if a == "" :
86+ print ("입력값이 부족합니다. 다시 입력해주세요." )
87+ phonebook_delete ()
88+ return
89+
90+ try :
91+ cur .execute ('delete from phonebook where hpno=?' , (a ,))
92+ conn .commit ()
93+ print ("{} 삭제 성공" .format (a ))
94+ except :
95+ print ("{} 삭제 실패" .format (a ))
96+
97+ print_menu ()
98+ return
99+
100+
101+ """
102+ [
103+ ['홍길동','010-1234-5678'],
104+ ['김철수','010-1234-5678'],
105+ ['김대한','010-1111-2222']
106+ ]
107+ """
108+
109+ print ("파이썬 전화번호부 Ver 1.0" )
110+ print_menu ()
111+
112+ while True :
113+ m = input ("기능을 선택하세요.(1~5 입력) " ).strip ()
114+ if m == "" : continue
115+
116+ if m == "1" :
117+ phonebook_search ()
118+
119+ elif m == "2" :
120+ phonebook_insert ()
121+
122+ elif m == "3" :
123+ phonebook_update ()
124+
125+ elif m == "4" :
126+ phonebook_delete ()
127+
128+ elif m == "5" :
129+ break
130+
131+ elif m == "6" :
132+ create_table ()
0 commit comments