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中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 Python
用Python解析XML的几种常见方法的介绍
Apr 09 Python
详细介绍Python中的偏函数
Apr 27 Python
Python psutil模块简单使用实例
Apr 28 Python
程序员写Python时的5个坏习惯,你有几条?
Nov 26 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
Python中six模块基础用法
Dec 08 Python
Python sublime安装及配置过程详解
Jun 29 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
python基础之模块的导入
Oct 24 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+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
python实现删除文件与目录的方法
2014/11/10 Python
Python性能优化技巧
2015/03/09 Python
python 队列详解及实例代码
2016/10/18 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
简单了解python的内存管理机制
2019/07/08 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
python lambda的使用详解
2021/02/26 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
全球最大的服务市场:Fiverr
2017/01/03 全球购物
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
2014年保险业务员工作总结
2014/12/23 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
python如何做代码性能分析
2021/04/26 Python
Python语言中的数据类型-序列
2022/02/24 Python