Python編寫通訊錄,支持模糊查詢,利用數據庫存儲

夢魘762459510 2021-11-25 18:30:58
python 支持 模糊 利用

1.要求

數據庫存儲通訊錄,要求按姓名/電話號碼查詢,查詢條件只有一個輸入入口,自動識別輸入的是姓名還是號碼,允許模糊查詢。

2.實現功能

可通過輸入指令進行操作。

(1)首先輸入“add”,可以對通訊錄進行添加聯系人信息。

sql1 = ‘insert into TA(ID,NAME,AGE,ADDRESS,TELENUMBER)’

sql1 += ‘values("%d","%s","%d","%s","%s");’ % (ID,name, age, address, telenumber)

conn.execute(sql1)

conn.commit() # 提交,否則無法保存

(2)輸入“delete”,可以删除指定的聯系人信息。

輸入姓名删除:

cursor = c.execute( “SELECT name from TA where name = ‘%s’;” %i)

輸入電話號碼删除:

cursor = c.execute( “SELECT name from TA where telenumber= ‘%s’;” % i)

(3)輸入“search”,可以輸入聯系人或者電話號碼,查詢聯系人信息,這裏實現了模糊查詢以及精確查詢。最後,如果你的時間不是很緊張,並且又想快速的python提高,最重要的是不怕吃苦,建議你可以架微信:762459510 ,那個真的很不錯,很多人進步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

輸入姓名查詢:

sql1 = “SELECT id,name,age, address, telenumber from TA where telenumber like '%” + i + “%’”

cursor = c.execute(sql1)

輸入電話號碼查詢:

sql1= “SELECT id,name,age, address, telenumber from TA where name like '%” +i+ “%’”

cursor = c.execute(sql1)

(4)輸入“searchall”,查詢全部聯系人信息。

cursor = c.execute( “SELECT id, name, age, address, telenumber from TA” )

3.數據庫sqlite3

Python自帶一個輕量級的關系型數據庫sqlite。這一數據庫使用SQL語言。sqlite作為後端數據庫,可以搭配Python建網站,或者制作有數據存儲需求的工具。sqlLite還在其它領域有廣泛的應用,比如HTML5和移動端。Python標准庫中的sqlite3提供該數據庫的接口。因此此次使用了sqlite3數據庫存儲通訊錄的聯系人信息。

源碼:

import sqlite3
import re

打開本地數據庫用於存儲用戶信息

conn = sqlite3.connect(‘mysql_telephone_book.db’)
c = conn.cursor()
在該數據庫下創建錶,創建錶的這段代碼在第一次執行後需要注釋掉,否則再次執行程序會一直提示:該錶已存在

‘’‘c.execute(“CREATE TABLE TA
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
TELENUMBER TEXT);”)’’’
conn.commit()#提交當前的事務
增加用戶信息

def insert():
global conn
c = conn.cursor()
ID=int(input(“請輸入id號:”))
name=input(“請輸入姓名:”)
age=int(input(“請輸入年齡:”))
address=input(“請輸入地址:”)
telenumber=input(“請輸入電話號碼:”)
sql1 = ‘insert into TA(ID,NAME,AGE,ADDRESS,TELENUMBER)’
sql1 += ‘values("%d","%s","%d","%s","%s");’ % (ID,name, age, address, telenumber)
conn.execute(sql1)
conn.commit()#提交,否則無法保存
print(“提交成功!!”)
删除用戶信息

def delete():
global conn
c=conn.cursor()
i = input(“請輸入所要删除的聯系人姓名或電話號碼:”)
if len(i) < 11:
cursor = c.execute(“SELECT name from TA where name = ‘%s’;”%i)
for row in cursor:
if i == row[0]:
c.execute(“DELETE from TA where name =’%s’;”%i)
conn.commit()
print(“成功删除聯系人信息!!”)
break
else:
print(“該聯系人不存在!!”)
else :
cursor = c.execute(“SELECT name from TA where telenumber= ‘%s’;” % i)
for row in cursor:
if i == row[0]:
c.execute(“DELETE from TA where telenumber =’%s’;” % i)
conn.commit()
print(“成功删除聯系人信息!!”)
break
else:
print(“該電話號碼錯誤!!”)
查詢用戶信息

def search():
global conn
c = conn.cursor()
i = input(“請輸入所要查詢的聯系人姓名或電話號碼:”)
if i.isnumeric():
sql1 = “SELECT id,name,age, address, telenumber from TA where telenumber like '%” + i + “%’”
cursor = c.execute(sql1)
res=cursor.fetchall()
if len(res)!=0:
for row in res:
print(“id:{0}”.format(row[0]))
print(“姓名:{0}”.format(row[1]))
print(“年齡:{0}”.format(row[2]))
print(“地址:{0}”.format(row[3]))
print(“電話號碼:{0}”.format(row[4]))
else:
print(“無此電話號碼!!”)
else:
sql1=“SELECT id,name,age, address, telenumber from TA where name like '%”+i+"%’"
cursor = c.execute(sql1)
res=cursor.fetchall()
if len(res) == 0:
print(“該聯系人不存在!!”)
else:
for row in res:
print(“id:{0}”.format(row[0]))
print(“姓名:{0}”.format(row[1]))
print(“年齡:{0}”.format(row[2]))
print(“地址:{0}”.format(row[3]))
print(“電話號碼:{0}”.format(row[4]))
顯示所有用戶信息

def showall():
global conn
c = conn.cursor()
cursor = c.execute(“SELECT id, name, age, address, telenumber from TA”)
for row in cursor:
print(“id:{0}”.format(row[0]))
print(“姓名:{0}”.format(row[1]))
print(“年齡:{0}”.format(row[2]))
print(“地址:{0}”.format(row[3]))
print(“電話號碼:{0}”.format(row[4]))
print("指令如下:\n1.輸入"add"為通訊錄添加聯系人信息\n2.輸入"delete"删除通訊錄裏的指定聯系人信息 \n3.輸入"searchall"查詢通訊錄裏的所有用戶 \n4.輸入"search"根據姓名或手機號碼查找信息 ")
while 1:
temp = input(“請輸入指令:”)
if temp == “add”:
insert()
print(“添加成功!”)
temp1=input(“是否繼續操作通訊錄?(y or n)”)
if temp1==“n”:
print(“成功退出!!”)
break
else:
continue
elif temp==“delete”:
delete()
temp1 = input(“是否繼續操作通訊錄?(y or n)”)
if temp1 == “n”:
print(“成功退出!!”)
break
else:
continue
elif temp==“searchall”:
showall()
temp1 = input(“是否想繼續操作通訊錄?(y or n)”)
if temp1 == “n”:
print(“成功退出!!”)
break
else:
continue
elif temp==“search”:
search()
temp1 = input(“您是否想繼續操作通訊錄?(y or n)”)
if temp1 == “n”:
print(“成功退出!!”)
break
else:
continue
else:
print(“請輸入正確指令!!”)
conn.close()#關閉數據庫

版权声明
本文为[夢魘762459510]所创,转载请带上原文链接,感谢
https://pythonmana.com/2021/11/20211125182917913u.html

  1. python3.7 FileNotFoundError: [WinError 2] 系统找不到指定的文件。
  2. 最全面的Python重点知识汇总
  3. python中 我想爬取一个网页,我在cmd中pip list中已经把requests 以及bs4 弄好了 但是他还是提示我没有那个模块
  4. You can learn Python articles without reading online classes (the first day)
  5. 在Python和Go项目之后使用Rust的经验分享 - scaleway
  6. 使用PyO3从Python调用 Rust:加速Python
  7. Python 3.7 filenotfounderror: [winerror 2] le système n'a pas pu trouver le fichier spécifié.
  8. Python 一切皆对象
  9. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  10. 求各位亲们可以解答一下嘛,为什么跑不出来呀,大学Python
  11. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  12. python飞机大战如何让飞机始终在界面中,不能跑出界面
  13. Python代码阅读(第63篇):数字奇偶性
  14. python建立⼀個圖形介⾯應⽤(GUI app)
  15. python接口自动化的html格式报告以邮件形式发送展示的原文很丑怎么处理
  16. 针对初学者,我建议你学这 3 个 Python AutoEDA 工具包
  17. #yyds干货盘点#Python-爬虫_urlib一个类型和六个方法
  18. Pour les débutants, je vous recommande d'apprendre ces 3 kits autoeda Python
  19. 我想问python怎么入门嘞?求各路人士
  20. Summary of today's Django lessons: data reverse query triggers error field 'score_ jieshoufankui‘ expected a number but got ‘‘-20211109
  21. 关于#python_while循环的写法#的问题,如何解决?
  22. Python异常处理中异常的种类有哪些?你知道几个?
  23. Python异常處理中异常的種類有哪些?你知道幾個?
  24. Quels sont les types d'exceptions dans la gestion des exceptions python? Combien en savez - vous?
  25. À propos de # Python Comment résoudre le problème de l'écriture de la Boucle while?
  26. Python如何操作system.data.sqlite数据库
  27. python数字游戏,让你欲罢不能
  28. Python中的可迭代对象、迭代器、For循环工作机制、生成器
  29. 一个从没接触过编程的人,如何自学进入Python行业?
  30. 一份超级实用的 Python ”技巧“清单
  31. Python 程序员给上路初学者的3点忠告
  32. 3 conseils pour les débutants sur la route par les programmeurs Python
  33. Une liste de conseils Python super pratiques
  34. Comment quelqu'un qui n'a jamais été en contact avec la programmation peut - il apprendre à entrer dans l'industrie python?
  35. Objets itérables, itérateurs, pour le mécanisme de travail circulaire, générateurs en python
  36. Les Jeux de chiffres Python vous font vous arrêter
  37. Comment Python fonctionne avec la base de données system.data.sqlite
  38. Python之html与markdown互相转换
  39. Python之html與markdown互相轉換
  40. Conversion HTML et markdown de Python
  41. Python生成的随机数,要怎么设定成随机数a小于随机数b啊
  42. Python生成的隨機數,要怎麼設定成隨機數a小於隨機數b啊
  43. Le nombre aléatoire généré par Python, comment définir le nombre aléatoire a est inférieur au nombre aléatoire B
  44. Python爬虫能做什么
  45. Python老技师给上路初学者的3点忠告
  46. 3 conseils aux débutants sur la route de l'ancien technicien Python
  47. Que peuvent faire les reptiles Python
  48. The code NPM cloned from git will report a python error after it is installed!
  49. 数据分析从零开始实战,Pandas读写CSV数据
  50. Python基础(十二):类与对象
  51. Python Foundation (12): classes et objets
  52. Python基礎(十二):類與對象
  53. L'analyse des données commence à zéro et pandas lit et écrit les données CSV
  54. Python Qt GUI设计:QSlider滑动条类(基础篇—16)
  55. #yyds干货盘点#数据分析从零开始实战,Pandas读写CSV数据
  56. This paper designs an examination system for automatically setting questions and judging papers by using Python standard library language to investigate the ability of users to calculate four integers within 100.
  57. Yyds Dry Inventory # Data Analysis started from zero, pandas read and write CSV Data
  58. python数据结构:数组、列表、栈、队列及实现
  59. Python编程真的是未来人工智能的主流吗?
  60. Python编写通讯录,支持模糊查询,利用数据库存储