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语句、函数与方法的使用技巧总结
Dec 08 Python
Python探索之ModelForm代码详解
Oct 26 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
基于Python中capitalize()与title()的区别详解
Dec 09 Python
Python图像处理之识别图像中的文字(实例讲解)
May 10 Python
python字典的常用方法总结
Jul 31 Python
Python socket 套接字实现通信详解
Aug 27 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
Python接口自动化判断元素原理解析
Feb 24 Python
python 利用zmail库发送邮件
Sep 11 Python
python自动化发送邮件实例讲解
Jan 04 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版
2016/07/21 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
Prototype Selector对象学习
2009/07/23 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python实现一组典型数据格式转换
2018/12/15 Python
Python3 log10()函数简单用法
2019/02/19 Python
Python递归函数特点及原理解析
2020/03/04 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
Python如何发送与接收大型数组
2020/08/07 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
汉语专业应届生求职信
2013/10/01 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
2014年党支部学习材料
2014/05/19 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
2015个人半年总结范文
2015/03/09 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
催款函范本大全
2015/06/24 职场文书
Golang日志包的使用
2022/04/20 Golang