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项目发布为exe可执行程序过程分享
Oct 23 Python
简单的抓取淘宝图片的Python爬虫
Dec 25 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
python+selenium开发环境搭建图文教程
Aug 11 Python
Python实现的rsa加密算法详解
Jan 24 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
Feb 07 Python
python能做什么 python的含义
Oct 12 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
Sep 01 Python
python在地图上画比例的实例详解
Nov 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
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
Python 判断是否为质数或素数的实例
2017/10/30 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
详解Python3定时器任务代码
2019/09/23 Python
python numpy 反转 reverse示例
2019/12/04 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
柯基袜:Corgi Socks
2017/01/26 全球购物
介绍一下SQL Server的全文索引
2013/08/15 面试题
金融专业个人的自我评价
2013/10/18 职场文书
运动会广播稿80字
2014/01/23 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
本科生自荐信
2014/06/18 职场文书
倡议书格式
2014/08/30 职场文书
党的生日演讲稿
2014/09/10 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
新员工辞职信范文
2015/05/12 职场文书
绿里奇迹观后感
2015/06/15 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书