#-*- 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. RSA非对称式加解密笔记

    1.服务器生成[公钥]和[私钥],成对生成: 2.客户端生成证书信息,使用[公钥]进行加密,前提是有公钥,并生成证书信息: 3.客户端发送自身的计算机名.MAC.用户名.证书内容给服务器: 4.服务器 ...

  2. static binding/dynamic binding

    static binding/dynamic binding class Person { private void who() { System.out.println("Inside p ...

  3. 002 spring boot框架,引入mybatis-generator插件,自动生成Mapper和Entity

    1.创建一个springboot项目 2.创建项目的文件结构以及jdk的版本 3.选择项目所需要的依赖 点击next,直到项目构建完成. 4.项目初步结构 5.POM文件 <?xml versi ...

  4. cf-786B区间图最短路

    https://www.cnblogs.com/31415926535x/p/11611801.html 偶然看到的这个东西,可以说是第一次见到图论+数据结构的题了,,这题代码很简单,细节处理一下就没 ...

  5. 关于Django数据库mysql连接错误问题Connection to api@localhost failed. [08001] Could not create connection to d

    Connection to api@localhost failed. [08001] Could not create connection to d 错误类型 django连接mysql数据库错误 ...

  6. ubuntu Django + Uwsgi + Nginx 的生产环境部署

    一.概述 使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇 ...

  7. Selenium+Java(七)Selenium对话框的处理

    HTML代码如图所示: 一.alert String url = "file:///C:/Users/ex_yuhao/Desktop/index.html"; //引用IE浏览器 ...

  8. quartz与c3p0冲突

    在SSM中使用连接池c3p0正常,引入quartz后发现后台报错 java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewP ...

  9. 使用 EnumWindows 找到满足你要求的窗口

    原文:使用 EnumWindows 找到满足你要求的窗口 在 Windows 应用开发中,如果需要操作其他的窗口,那么可以使用 EnumWindows 这个 API 来枚举这些窗口. 本文介绍使用 E ...

  10. 使用HttpClient调用接口

    一,编写返回对象 public class HttpResult { // 响应的状态码 private int code; // 响应的响应体 private String body;get/set ...