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 相关文章推荐
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
Python中数字以及算数运算符的相关使用
Oct 12 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
Python3之简单搭建自带服务器的实例讲解
Jun 04 Python
Python实现登陆文件验证方法
Oct 06 Python
python 实现数字字符串左侧补零的方法
Dec 04 Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 Python
pytorch模型存储的2种实现方法
Feb 14 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
Python 虚拟环境工作原理解析
Dec 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 mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
php源码的使用方法讲解
2019/09/26 PHP
jQuery调用WebService的实现代码
2011/06/19 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
用Python输出一个杨辉三角的例子
2014/06/13 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
python相对企业语言优势在哪
2020/06/12 Python
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
在校生钳工实习自我鉴定
2013/09/19 职场文书
竞聘书格式及范文
2014/03/31 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
结婚老公保证书
2015/02/26 职场文书
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js