Skip to content

Commit 583c952

Browse files
committed
Merge branch 'master' of github.com:jackfrued/Python-100-Days
2 parents 147bd29 + 83e7f48 commit 583c952

File tree

2 files changed

+81
-24
lines changed

2 files changed

+81
-24
lines changed

Diff for: Day36-40/code/contact/main.py

+49-24
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,24 @@
1515
select conid as id, conname as name, contel as tel, conemail as email
1616
from tb_contacter limit %s offset %s
1717
"""
18+
SELECT_CONTACTERS_BY_NAME = """
19+
select conid as id, conname as name, contel as tel, conemail as email
20+
from tb_contacter where conname like %s
21+
"""
1822
COUNT_CONTACTERS = """
1923
select count(conid) as total from tb_contacter
2024
"""
2125

2226

27+
class Contacter(object):
28+
29+
def __init__(self, id, name, tel, email):
30+
self.id = id
31+
self.name = name
32+
self.tel = tel
33+
self.email = email
34+
35+
2336
def input_contacter_info():
2437
name = input('姓名: ')
2538
tel = input('手机: ')
@@ -39,10 +52,10 @@ def add_new_contacter(con):
3952
print('添加联系人失败!')
4053

4154

42-
def delete_contacter(con, contacter_id):
55+
def delete_contacter(con, contacter):
4356
try:
4457
with con.cursor() as cursor:
45-
if cursor.execute(DELETE_CONTACTER, (contacter_id, )) == 1:
58+
if cursor.execute(DELETE_CONTACTER, (contacter.id, )) == 1:
4659
print('联系人已经删除!')
4760
except pymysql.MySQLError as err:
4861
print(err)
@@ -51,31 +64,45 @@ def delete_contacter(con, contacter_id):
5164

5265
def edit_contacter_info(con, contacter):
5366
name, tel, email = input_contacter_info()
54-
contacter['name'] = name or contacter['name']
55-
contacter['tel'] = tel or contacter['tel']
56-
contacter['email'] = email or contacter['email']
67+
contacter.name = name or contacter.name
68+
contacter.tel = tel or contacter.tel
69+
contacter.email = email or contacter.email
5770
try:
5871
with con.cursor() as cursor:
5972
if cursor.execute(UPDATE_CONTACTER,
60-
(contacter['name'], contacter['tel'],
61-
contacter['email'], contacter['id'])) == 1:
73+
(contacter.name, contacter.tel,
74+
contacter.email, contacter.id)) == 1:
6275
print('联系人信息已经更新!')
6376
except pymysql.MySQLError as err:
6477
print(err)
6578
print('更新联系人信息失败!')
6679

6780

6881
def show_contacter_detail(con, contacter):
69-
print('姓名:', contacter['name'])
70-
print('手机号:', contacter['tel'])
71-
print('邮箱:', contacter['email'])
82+
print('姓名:', contacter.name)
83+
print('手机号:', contacter.tel)
84+
print('邮箱:', contacter.email)
7285
choice = input('是否编辑联系人信息?(yes|no)')
7386
if choice == 'yes':
7487
edit_contacter_info(con, contacter)
7588
else:
7689
choice = input('是否删除联系人信息?(yes|no)')
7790
if choice == 'yes':
78-
delete_contacter(con, contacter['id'])
91+
delete_contacter(con, contacter)
92+
93+
94+
def show_search_result(con, cursor):
95+
contacters_list = []
96+
for index, row in enumerate(cursor.fetchall()):
97+
contacter = Contacter(**row)
98+
contacters_list.append(contacter)
99+
print('[%d]: %s' % (index, contacter.name))
100+
if len(contacters_list) > 0:
101+
choice = input('是否查看联系人详情?(yes|no)')
102+
if choice.lower() == 'yes':
103+
index = int(input('请输入编号: '))
104+
if 0 <= index < cursor.rowcount:
105+
show_contacter_detail(con, contacters_list[index])
79106

80107

81108
def find_all_contacters(con):
@@ -87,31 +114,29 @@ def find_all_contacters(con):
87114
while True:
88115
cursor.execute(SELECT_CONTACTERS,
89116
(size, (page - 1) * size))
90-
contacters_list = []
91-
for index, row in enumerate(cursor.fetchall()):
92-
contacters_list.append(row)
93-
print('[%d]: %s' % (index, row['name']))
94-
choice = input('是否查看联系人详情?(yes|no)')
95-
if choice.lower() == 'yes':
96-
index = int(input('请输入编号: '))
97-
if 0 <= index < cursor.rowcount:
98-
show_contacter_detail(con, contacters_list[index])
117+
show_search_result(con, cursor)
99118
if page * size < total:
100119
choice = input('继续查看下一页?(yes|no)')
101120
if choice.lower() == 'yes':
102121
page += 1
103122
else:
104123
break
105124
else:
106-
print('没有下一页记录啦!')
125+
print('没有下一页记录!')
107126
break
108-
109127
except pymysql.MySQLError as err:
110128
print(err)
111129

112130

113131
def find_contacters_by_name(con):
114-
pass
132+
name = input('联系人姓名: ')
133+
try:
134+
with con.cursor() as cursor:
135+
cursor.execute(SELECT_CONTACTERS_BY_NAME,
136+
('%' + name + '%', ))
137+
show_search_result(con, cursor)
138+
except pymysql.MySQLError as err:
139+
print(err)
115140

116141

117142
def find_contacters(con):
@@ -129,7 +154,7 @@ def find_contacters(con):
129154

130155

131156
def main():
132-
con = pymysql.connect(host='10.7.185.126', port=3306,
157+
con = pymysql.connect(host='localhost', port=3306,
133158
user='root', passwd='123456',
134159
db='contact', charset='utf8',
135160
autocommit=True,

Diff for: Day36-40/code/contact/test02.py

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class Student(object):
2+
3+
def __init__(self, id, name, age, sex):
4+
self.id = id
5+
self.name = name
6+
self.age = age
7+
self.sex = sex
8+
9+
def study(self, course_name):
10+
print(f'{self.name}正在学习{course_name}.')
11+
12+
def watch_av(self):
13+
if self.age >= 18:
14+
print(f'{self.name}正在观看岛国片.')
15+
else:
16+
print(f'{self.name}只能看《熊出没》.')
17+
18+
19+
def main():
20+
dict1 = {
21+
'id': 1001,
22+
'name': '王大锤',
23+
'age': 15,
24+
'sex': True
25+
}
26+
stu = Student(**dict1)
27+
stu.study('Python程序设计')
28+
stu.watch_av()
29+
30+
31+
if __name__ == '__main__':
32+
main()

0 commit comments

Comments
 (0)