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使用Flask框架同时上传多个文件的方法
Mar 21 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 Python
python 内置模块详解
Jan 01 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 Python
centos7之Python3.74安装教程
Aug 15 Python
Python实现图像的垂直投影示例
Jan 17 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
python 子类调用父类的构造函数实例
Mar 12 Python
keras 多gpu并行运行案例
Jun 10 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 Python
python实现excel公式格式化的示例代码
Dec 23 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 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
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php教程之phpize使用方法
2014/02/12 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
php搜索文件程序分享
2015/10/30 PHP
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
linux安装python修改默认python版本方法
2019/03/31 Python
python实现指定ip端口扫描方式
2019/12/17 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
学校欢迎标语
2014/06/18 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
小数乘法教学反思
2016/02/22 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python
Nginx源码编译安装过程记录
2021/11/17 Servers