#-*- coding:utf-8 -*-

import sqlite3
#打开本地数据库用于存储用户信息
conn = sqlite3.connect('mysql_person.db') #在该数据库下创建表,创建表的这段代码在第一次执行后需要注释掉,否则再次执行程序会一直提示:该表已存在
conn.execute ('''CREATE TABLE MT_table1(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL,
PhoneNumber INT NOT NULL);''')
print "Table created successfully"; #增加用户信息
def insert():
USER_NAME = raw_input('请输入用户昵称:')
cursor = conn.execute("SELECT name from MT_table1 where name = '%s';"%USER_NAME)
for row in cursor:
if USER_NAME == row[0]:
print "sorry,改用户名已存在,请重新输入用户名"
break
else:
AGE = input('请输入年龄:')
ADDRESS = raw_input('请输入用户地址:')
SALARY = input('请输入用户薪水:')
PhoneNumber = input("请输入联系方式:")
#为避免代码太长,以下我用字符串的连接特性将代码缩短
sql1 = 'INSERT INTO MT_table1(NAME,AGE,ADDRESS,SALARY,PhoneNumber)'
sql1 += 'VALUES("%s","%d","%s","%d","%d");'%(USER_NAME,AGE,ADDRESS,SALARY,PhoneNumber)
conn.execute(sql1)
conn.commit()
print "Records insert successfully" #删除用户信息
def delete():
delete_name = raw_input("请输入所要删除的联系人姓名:")
cursor = conn.execute("SELECT name from MT_table1 where name = '%s';"%delete_name)
for row in cursor:
if delete_name == row[0]:
conn.execute("DELETE from MT_table1 where name = '%s';"%delete_name)
conn.commit()
print "Records delete successfully"
break
else:
print "sorry,不存在该用户" #修改用户信息
def modify():
update_name = raw_input("请输入要修改用户的姓名:")
sql6 = "SELECT name from MT_table1 where name = '%s';"%update_name
cursor = conn.execute(sql6)
for row in cursor:
if update_name == row[0]:
New_addr = raw_input("请输入要修改用户的新地址:")
New_age = input("请输入要修改用户的新年龄:")
New_salary = input("请输入要修改用户的新薪水:")
New_num = input("输入要修改用户的新号码:")
sql3 = "UPDATE MT_table1 set address = '%s',age = '%d',salary = '%d',PhoneNumber = '%d' where \
name = '%s';"%(New_addr,New_age,New_salary,New_num,update_name)
conn.execute(sql3)
conn.commit()
print "修改成功"
sql5 = "SELECT id, name, age,address, salary ,PhoneNumber from MT_table1 where name = '%s';"%update_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]
print "PhoneNumber = ",row[5], "\n"
break
else:
print "sorry,不存在该用户信息" #查询用户信息
def search():
conn = sqlite3.connect('mysql_person.db')
search_name = raw_input('请输入要查询的用户姓名')
sql2 = "SELECT id,name,age, address, salary ,PhoneNumber from MT_table1 where name= '%s';" % (search_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]
print "PhoneNumber = ",row[5], "\n"
break
else:
print "sorry,没有该用户信息" #显示所有用户信息
def showall():
cursor = conn.execute("SELECT id, name,age, address, salary ,PhoneNumber from MT_table1")
for row in cursor:
print "ID = ", row[0]
print "NAME = ", row[1]
print "AGE = ",row[2]
print "ADDRESS = ", row[3]
print "SALARY = ", row[4]
print "PhoneNumber = ",row[5], "\n"
print "Operation done successfully";
cursor = conn.execute("select count(*) from MT_table1;")
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应用之-修改通讯录的更多相关文章

  1. Python默认版本修改

    Python默认版本修改 当电脑安装了多个版本的Python,而Shell中默认的Python不是你想要的,这个时候就需要对Python的默认版本进行修改. 在Windows中,可以通过修改环境变量的 ...

  2. iOS 修改通讯录联系人地址(address)崩溃原因分析

    目前项目中需要对iOS系统通讯录进行读取,修改操作.在进行对地址修改的时候,出现了一个奇怪现象: ● 如果contact没有address字段(或者一个全新的contact),对它的address进行 ...

  3. 孤荷凌寒自学python第五十三天使用python写入和修改Firebase数据库中记录

     孤荷凌寒自学python第五十三天使用python写入和修改Firebase数据库中记录 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数 ...

  4. python requests接收chunked编码问题-python源码修改

    python requests接收chunked编码问题-python源码修改 学习了:https://blog.csdn.net/wangzuxi/article/details/40377467

  5. Python的字符串修改报错:TypeError: 'str' object does not support item assignment

    Python中想修改字符串的最后一个字符,使用name[-1] = 'e'来实现,运行后报错. 报错内容是:TypeError: 'str' object does not support item ...

  6. python禁止函数修改列表的实现方法

    python禁止函数修改列表的实现方法 有时候,需要禁止函数修改列表.例如要对裂变进行修改操作,也要保留原来的未打印的设计列表,以供备案.为解决这个问题,可向函数传递列表的副本而不是原件:这样函数所做 ...

  7. linux下面升级 Python版本并修改yum属性信息

    最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...

  8. python 装饰器修改调整函数参数

    简单记录一下利用python装饰器来调整函数的方法.现在有个需求:参数line范围为1-16,要求把9-16的范围转化为1-8,即9对应1,10对应2,...,16对应8. 下面是例子: def fo ...

  9. 【python】为什么修改全局的dict变量不用global关键字

    转自:http://my.oschina.net/leejun2005/blog/145911?fromerr=qnPCgI19#OSC_h4_8 为什么修改字典d的值不用global关键字先声明呢? ...

随机推荐

  1. 微信多开简单实现 WeXinMoreOpen.bat

    新建一个 WeXinMoreOpen.bat 文件,内容如下 @echo off D: cd "D:\Program Files (x86)\Tencent\WeChat" sta ...

  2. flutter本地环境的安装以及编辑器的配置

    由于本文图片比较多,所有都缩小了不少,点击图片就可以放大看到原始图片 使用镜像 cmd打开终端,贴上以下代码,以加入到环境变量中,如果添加失败,可以手动添加 export PUB_HOSTED_URL ...

  3. vue实现视频播放

    用的vue组件是vue-video-player,可以去百度下怎么引入到项目中: 因为这个组件是基于H5video实现的,视频格式有所限制,而且MP4不是H264的也不行.转码可以看下我上篇博客,地址 ...

  4. 绘制UML图的工具

    目前在用processOn网站进行绘制:https://www.processon.com/ 学习其简单的入门教程: https://www.processon.com/support https:/ ...

  5. fineui整合kindeditor的例子

    如果看不清: http://fineui.com/bbs/forum.php?mod=viewthread&tid=6683   注意:高于fineui v4.2.0的版本kindeditor ...

  6. [Docker] Windows 宿主环境下,共享或上传文件到容器的方法

    需求如题. 解决方案1 - 挂载目录(适用于创建新的容器) 格式-v 容器目录 或 -v 本地目录:容器目录 范例Linux宿主环境下:使用镜像 nginx:latest,以后台模式启动一个容器,将容 ...

  7. 1139 First Contact PAT (Advanced Level)

    原题链接: https://pintia.cn/problem-sets/994805342720868352/problems/994805344776077312 测试点分析: 首先来分析一下测试 ...

  8. t100 debug常用指令

    1.     r.d 程式代號 Find (Ctrl+F) => Find Next(F3). 設中斷點(Toggle):Double Click => Run/Continue the ...

  9. C# vb .net实现翻转特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的翻转特效效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...

  10. Kubernetes(K8s)基础知识(docker容器技术)

    今天谈谈K8s基础知识关键词: 一个目标:容器操作:两地三中心:四层服务发现:五种Pod共享资源:六个CNI常用插件:七层负载均衡:八种隔离维度:九个网络模型原则:十类IP地址:百级产品线:千级物理机 ...