Python实现通讯录功能


Posted in Python onFebruary 22, 2018

说实话,第一次写这么长的Python代码,期间遇到了很多问题,但是,最终还是完成了,花了我一天半的时间。

该程序实现了用户的增,删,改,查,主要用到sqlite3模块。对于该模块的知识点,请查看我的另一篇文章SQLite-Python

如有更好的建议,请私信,本人将不胜荣幸,让我们一起来学习Python!

#-*- coding:utf-8 -*-
import sqlite3
#打开本地数据库用于存储用户信息
conn = sqlite3.connect('mysql_person.db')

#在该数据库下创建表,创建表的这段代码在第一次执行后需要注释掉,否则再次执行程序会一直提示:该表已存在
conn.execute('''CREATE TABLE MT
 (ID INT PRIMARY KEY NOT NULL,
 NAME TEXT NOT NULL,
 AGE INT NOT NULL,
 ADDRESS CHAR(50),
 SALARY REAL);''')
print "Table created successfully";
conn.close()

#增加用户信息
def insert():
 ID = input('请输入用户ID:\n')
 NAME = raw_input('请输入用户昵称:\n')
 AGE = input('请输入年龄:\n')
 ADDRESS = raw_input('请输入用户地址:\n')
 SALARY = input('请输入用户薪水:\n')
 sql1 = 'insert into MT(ID,NAME,AGE,ADDRESS,SALARY)'
 sql1 += 'values("%d","%s","%d","%s","%d");'%(ID,NAME,AGE,ADDRESS,SALARY)
 conn.execute(sql1)
 conn.commit()
 print "Records insert successfully"

#删除用户信息
def delete():
 name = raw_input("请输入所要删除的联系人姓名:")
 cursor = conn.execute("SELECT name from MT where name = '%s';"%name)
 for row in cursor:
 if name == row[0]:
 conn.execute("DELETE from MT where name = '%s';"%name)
 conn.commit()
 print "Records delete successfully"
 break
 else:
 print "sorry,不存在该用户"

#修改用户信息
def modify():
 name = raw_input("请输入要修改用户的姓名:")
 print search()
 sql4 = "SELECT id, name, age,address, salary from MT where name = '%s';"%name
 cursor = conn.execute(sql4)
 x = raw_input("请输入要修改用户的新地址:")
 y = input("请输入要修改用户的新年龄:")
 z = input("请输入要修改用户的新薪水:")
 sql3 = "UPDATE MT set address = '%s',age = '%d',\
 salary = '%d' where name = '%s';"%(x,y,z,name)
 conn.execute(sql3)
 conn.commit()
 print "修改成功"
 sql5 = "SELECT id, name, age,address, salary from MT where name = '%s';"%name
 cursor = conn.execute(sql5)
 for row in cursor:
 print "ID = ", row[0]
 print "NAME = ", row[1]
 print "AGE = ",row[2]
 print "ADDRESS = ", row[3]
 print "SALARY = ", row[4], "\n"


#查询用户信息
conn = sqlite3.connect('mysql_person.db')

def search():
 conn = sqlite3.connect('mysql_person.db')
 name = raw_input('请输入要查询的用户姓名')
 sql2 = "SELECT id,name,age, address, salary from MT where name= '%s';" % (name)
 cursor = conn.execute(sql2)
 for row in cursor:
 print "ID = ", row[0]
 print "NAME = ", row[1]
 print "AGE = ",row[2]
 print "ADDRESS = ", row[3]
 print "SALARY = ", row[4], "\n"
 break
 else:
 print "sorry,没有该用户信息"

#显示所有用户信息
def showall():
 cursor = conn.execute("SELECT id, age, name, address, salary from MT")
 for row in cursor:
 print "ID = ", row[0]
 print "NAME = ", row[1]
 print "AGE = ",row[2]
 print "ADDRESS = ", row[3]
 print "SALARY = ", row[4], "\n"
 print "Operation done successfully";
 cursor = conn.execute("select count(*) from MT;")
 for row in cursor:
 print "一共有%d个用户"%row[0]

def menu():
 print '1.新增联系人'
 print '2.删除联系人'
 print '3.修改联系人'
 print '4.查询联系人'
 print '5.显示所有联系人'
 print '6.退出程序'
 print 'What do you want to do?'
while True:
 menu()
 x = raw_input('请输入您的选择菜单号:')
 if x == '1':
 insert()
 continue
 if x == '2':
 delete()
 continue
 if x == '3':
 modify()
 continue
 if x == '4':
 search()
 continue
 if x == '5':
 showall()
 continue
 if x == '6':
 print "谢谢使用!"
 exit()
 continue
 else:
 print "输入的选项不存在,请重新输入!"
 continue

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
基于python的汉字转GBK码实现代码
Feb 19 Python
Python实现截屏的函数
Jul 25 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
详解python eval函数的妙用
Nov 16 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
python实现列表的排序方法分享
Jul 01 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 Python
Python实现读取并写入Excel文件过程解析
May 27 Python
Python SQLite3简介
Feb 22 #Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 #Python
Python中 传递值 和 传递引用 的区别解析
Feb 22 #Python
centos 安装python3.6环境并配置虚拟环境的详细教程
Feb 22 #Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
Feb 21 #Python
Django中redis的使用方法(包括安装、配置、启动)
Feb 21 #Python
基于Django用户认证系统详解
Feb 21 #Python
You might like
php实现网页缓存的工具类分享
2015/07/14 PHP
jquery垂直公告滚动实现代码
2013/12/08 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
python 图片验证码代码
2008/12/07 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
Python序列类型的打包和解包实例
2019/12/21 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
Python计算信息熵实例
2020/06/18 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
社区志愿者心得体会
2014/01/03 职场文书
给儿子的表扬信
2014/01/15 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
金融管理专业求职信
2014/07/10 职场文书
评先进个人材料
2014/12/29 职场文书
老乡聚会通知
2015/04/23 职场文书