欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)簡易通訊錄修改版

 更新時間:2018年03月13日 11:55:26   作者:MTbaby  
這篇文章主要為大家詳細介紹了python實現(xiàn)簡易通訊錄的修改版,具有一定的參考價值,感興趣的小伙伴們可以參考一下

描述:

上一篇博客我寫了一個簡單的通訊錄,但是還是覺得不夠完美:

需要輸入ID,雖然ID是主鍵,但是沒有實現(xiàn)自增功能;

忘記加電話號碼了;

如果插入用戶名相同,則后續(xù)的查、改、刪功能受到影響;

所以,我這個修改版主要修正了以上三點缺陷。具體如下

將用戶ID設(shè)置為自增字段,即就是不用輸入ID,程序會自動幫你將插入的用戶進行排序并附上ID,默認從1開始;SQLite實現(xiàn)主鍵自增功能,請查看SQLiteAUTOINCREMENT/自動遞增這篇博客。
創(chuàng)建表時增加了電話號碼字段;
插入的用戶名不能重復(fù);
好了,廢話不多說,附上新代碼,哈哈~~~

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

import sqlite3
#打開本地數(shù)據(jù)庫用于存儲用戶信息
conn = sqlite3.connect('mysql_person.db')

#在該數(shù)據(jù)庫下創(chuàng)建表,創(chuàng)建表的這段代碼在第一次執(zhí)行后需要注釋掉,否則再次執(zhí)行程序會一直提示:該表已存在
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("請輸入聯(lián)系方式:")
    #為避免代碼太長,以下我用字符串的連接特性將代碼縮短
    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("請輸入所要刪除的聯(lián)系人姓名:")
  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.新增聯(lián)系人'
  print '2.刪除聯(lián)系人'
  print '3.修改聯(lián)系人'
  print '4.查詢聯(lián)系人'
  print '5.顯示所有聯(lián)系人'
  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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python?的賦值,淺拷貝和深拷貝詳解

    Python?的賦值,淺拷貝和深拷貝詳解

    這篇文章主要為大家介紹了Python?的賦值,淺拷貝和深拷貝,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2021-12-12
  • python檢測IP地址變化并觸發(fā)事件

    python檢測IP地址變化并觸發(fā)事件

    這篇文章主要為大家詳細介紹了python檢測IP地址變化并觸發(fā)事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解

    Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解

    這篇文章主要介紹了Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解,在Python中有時候需要操作excel表格的數(shù)據(jù),把excel表格轉(zhuǎn)化為字典存起來,方便讀取,今天我們就來看看如何轉(zhuǎn)換,需要的朋友可以參考下
    2023-08-08
  • python深度學習tensorflow卷積層示例教程

    python深度學習tensorflow卷積層示例教程

    這篇文章主要為大家介紹了python深度學習tensorflow卷積層示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Python實現(xiàn)去除Excel重復(fù)數(shù)據(jù)并統(tǒng)計重復(fù)次數(shù)

    Python實現(xiàn)去除Excel重復(fù)數(shù)據(jù)并統(tǒng)計重復(fù)次數(shù)

    這篇文章主要為大家詳細介紹了如何利用Python語言實現(xiàn)文本數(shù)據(jù)去重,創(chuàng)建包含唯一值的新列,并統(tǒng)計文本數(shù)據(jù)出現(xiàn)的次數(shù),需要的可以參考下
    2023-08-08
  • Python定時任務(wù)sched模塊用法示例

    Python定時任務(wù)sched模塊用法示例

    這篇文章主要介紹了Python定時任務(wù)sched模塊用法,結(jié)合實例形式分析了定時任務(wù)sched模塊的基本功能、參數(shù)含義、多線程定時任務(wù)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python補齊字符串長度的實例

    Python補齊字符串長度的實例

    今天小編就為大家分享一篇Python補齊字符串長度的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 使用python解析xml成對應(yīng)的html示例分享

    使用python解析xml成對應(yīng)的html示例分享

    這篇文章主要介紹了使用python解析xml成對應(yīng)的html示例,需要的朋友可以參考下
    2014-04-04
  • Django集成富文本編輯器summernote的實現(xiàn)步驟

    Django集成富文本編輯器summernote的實現(xiàn)步驟

    在最近的項目中小編使用了這個富文本編輯器,選擇它的主要原因是配置非常簡單,默認支持普通用戶上傳圖片(不像ckeditor默認只有staff user才能上傳圖片。如果要讓普通用戶上傳圖片,還需修改源碼裝飾器)?,F(xiàn)在讓我們來看看如何使用這個富文本編輯器
    2021-05-05
  • pycharm重命名文件的方法步驟

    pycharm重命名文件的方法步驟

    在本篇文章中小編給大家分享的是關(guān)于pycharm重命名文件的方法步驟,對此有需要的朋友們可以學習參考下。
    2019-07-07

最新評論