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实现百度关键词排名查询
Mar 30 Python
用Python实现服务器中只重载被修改的进程的方法
Apr 30 Python
python的多重继承的理解
Aug 06 Python
定制FileField中的上传文件名称实例
Aug 23 Python
python操作oracle的完整教程分享
Jan 30 Python
matplotlib实现区域颜色填充
Mar 18 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
python如何解析配置文件并应用到项目中
Jun 27 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
Python的形参和实参使用方式
Dec 24 Python
解决paramiko执行命令超时的问题
Apr 16 Python
python脚本第一行如何写
Aug 30 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
ThinkPHP文件上传实例教程
2014/08/22 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
centos系统升级python 2.7.3
2014/07/03 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
pytorch随机采样操作SubsetRandomSampler()
2020/07/07 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
高一数学教学反思
2014/02/07 职场文书
社团活动总结怎么写
2014/06/30 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
顶岗实习协议书
2015/01/29 职场文书
立项申请报告范本
2015/05/15 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
离婚代理词范文
2015/05/23 职场文书
家长通知书家长意见
2015/06/03 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书