Skip to content

Commit cce1543

Browse files
authored
전화번호부(SQLite DB 사용)
1 parent 3032541 commit cce1543

File tree

1 file changed

+132
-0
lines changed

1 file changed

+132
-0
lines changed

phonebook_sqlite3.py

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
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

Comments
 (0)