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 splitlines使用技巧
Sep 06 Python
Python打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
Python实现LRU算法的2种方法
Jun 24 Python
两个使用Python脚本操作文件的小示例分享
Aug 27 Python
在pandas中一次性删除dataframe的多个列方法
Apr 10 Python
python获取文件路径、文件名、后缀名的实例
Apr 23 Python
python编写暴力破解zip文档程序的实例讲解
Apr 24 Python
python之django母板页面的使用
Jul 03 Python
Python面向对象原理与基础语法详解
Jan 02 Python
详解pycharm配置python解释器的问题
Oct 15 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
Jan 08 Python
python编程项目中线上问题排查与解决
Nov 01 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使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
php四种定界符详解
2017/02/16 PHP
popdiv
2006/07/14 Javascript
javascript String 的扩展方法集合
2008/06/01 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
js实现简单的秒表
2020/01/16 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
Python使用filetype精确判断文件类型
2017/07/02 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
python对excel文档去重及求和的实例
2018/04/18 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
Python bytes string相互转换过程解析
2020/03/05 Python
优秀教师主要事迹
2014/02/01 职场文书
2014年班务工作总结
2014/12/02 职场文书
2014年纪委工作总结
2014/12/05 职场文书
综合测评个人总结
2015/03/03 职场文书
求职简历自我评价范文
2015/03/10 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
一篇文章带你复习java知识点
2021/06/28 Java/Android
MySQL连接控制插件介绍
2021/09/25 MySQL