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

Python實現(xiàn)命令行通訊錄實例教程

 更新時間:2016年08月18日 10:16:27   投稿:daisy  
這篇文章主要介紹怎樣編寫了一段命令行通訊錄的小程序。下面是編寫的思路以及代碼,歡迎感興趣的同學交流探討。

1、實現(xiàn)目標

編寫一個命令行通訊錄程序,可以添加、查詢、刪除通訊錄好友及電話

2、實現(xiàn)方法

創(chuàng)建一個類來表示一個人的信息。使用字典存儲每個人的對象,名字作為鍵。
使用pickle模塊永久地把這些對象存儲下來。
使用字典內(nèi)建的方法添加、刪除修改人員信息。

3、思維導圖

4、編寫偽代碼

# 1.創(chuàng)建字典用來存儲通訊錄信息
# 2.創(chuàng)建人員類,包含姓名、關(guān)系、電話三個屬性
# 3.創(chuàng)建操作類,包含增加、查詢、刪除人員,退出,保存并退出五個方法
# 4.程序運行
# 5.判斷通訊錄文件是否存在
# 6.如果存在,將文件讀取到personDictionary字典中
# 7.如果不存在,提示并創(chuàng)建
# 8.while循環(huán)等待讀取指令
  # 9.如果指令為addperson,添加通訊錄人員
  # 10.如果指令為delperson,刪除通訊錄人員
  # 11.如果指令為search,查找通訊錄人員
  # 12.如果指令為quit,不保存退出程序
  # 13.如果指令為sq,保存更改并退出程序

5、根據(jù)偽代碼編寫代碼

import pickle as p
import os

# 1.創(chuàng)建字典用來存儲通訊錄信息
personDictionary= {'name':{'relationship':'','tel':''}}
relationshipList=['家人','朋友','同事']

# 2.創(chuàng)建人員類,包含姓名、關(guān)系、電話三個屬性
class Person:
  def __init__(self,name,relationship= relationshipList[1],tel='None'):
    personDictionary[name]= {'relationship':relationship,'tel':tel}
# 3.創(chuàng)建操作類,包含增加、查詢、刪除人員,退出,保存并退出五個方法
class Operation:
  def Addperson():
    addname= input('請輸入姓名:')
    addrelationship= int(input('請選擇分組(0:家人,1:朋友,2:同事):'))
    addtel= input('請輸入電話:')
    Person(addname,relationshipList[addrelationship],addtel)
  def Delperson():
    name= input('請輸入要刪除的聯(lián)系人姓名:')
    del personDictionary[name]
  def Search():
    name= input('請輸入要查找的聯(lián)系人的姓名:')
    if name in personDictionary:
      print('姓名:%s,關(guān)系:%s,電話:%s' %(name,personDictionary[name]['relationship'],personDictionary[name]['tel']))
    else:
      print('聯(lián)系人不存在。')
  def Quit():
    running= False
  def SaveQuit():
    f= open(addressbookFile,'wb')
    p.dump(personDictionary,f)
    f.close()
    running= False
# 4.程序運行
running= True
# 5.判斷通訊錄文件是否存在
addressbookFile= 'addressbook.data'
# 6.如果存在,將文件讀取到personDictionary字典中
if os.path.exists(addressbookFile):
  f= open(addressbookFile,'rb')  
  personDictionary= p.load(f)
# 7.如果不存在,提示并創(chuàng)建
else:
  jCommand= input('未找到通訊錄文件,是否創(chuàng)建?yes/no ')
  if jCommand== 'yes':
    f= open(addressbookFile,'wb')
    p.dump(personDictionary,f)
    f.close()
  elif jCommand== 'no':
    running= False
# 8.while循環(huán)等待讀取指令
while running:
  command= input('請輸入指令:')
  # 9.如果指令為addperson,添加通訊錄人員
  if command== 'addperson':
    Operation.Addperson()
    continue
  # 10.如果指令為delperson,刪除通訊錄人員
  elif command== 'delperson':
    Operation.Delperson()
    continue
  # 11.如果指令為search,查找通訊錄人員
  elif command== 'search':
    Operation.Search()
    continue
  # 12.如果指令為quit,不保存退出程序
  elif command== 'quit':
    Operation.Quit()
    break
  # 13.如果指令為sq,保存更改并退出程序
  elif command== 'sq':
    Operation.SaveQuit()
    break
  else:
    print('未找到指令!')
    continue

6、演示

Python3 addressbook.py 
請輸入指令:search
請輸入要查找的聯(lián)系人的姓名:zhangsan
聯(lián)系人不存在。
請輸入指令:addperson
請輸入姓名:zhangsan
請選擇分組(0:家人,1:朋友,2:同事):1
請輸入電話:1234567
請輸入指令:search
請輸入要查找的聯(lián)系人的姓名:zhangsan
姓名:zhangsan,關(guān)系:朋友,電話:1234567
請輸入指令:sq
$ Python3 addressbook.py 
請輸入指令:search
請輸入要查找的聯(lián)系人的姓名:zhangsan
姓名:zhangsan,關(guān)系:朋友,電話:1234567
請輸入指令:addperson
請輸入姓名:lisi
請選擇分組(0:家人,1:朋友,2:同事):1
請輸入電話:1234567
請輸入指令:q
未找到指令!
請輸入指令:quit
$ Python3 addressbook.py 
請輸入指令:search
請輸入要查找的聯(lián)系人的姓名:lisi
聯(lián)系人不存在。
請輸入指令:search
請輸入要查找的聯(lián)系人的姓名:zhangsan
姓名:zhangsan,關(guān)系:朋友,電話:1234567
請輸入指令:quit

總結(jié)

以上就是Python實現(xiàn)命令行通訊錄實例教程的全部內(nèi)容,如果有疑問可以留言討論,希望本文的內(nèi)容對大家學習使用python能有所幫助。

相關(guān)文章

  • Python+Sympy實現(xiàn)計算微積分

    Python+Sympy實現(xiàn)計算微積分

    微積分的計算也許平時用不到,會讓人覺得有點高深,它們的計算過程中需要使用很多計算規(guī)則,但是使用?Sympy?可以有效減輕這方面的負擔,本文就來和大家簡單講講吧
    2023-07-07
  • 詳解Python 合并字典

    詳解Python 合并字典

    這篇文章主要為大家介紹了Python的合并字典,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • pycharm 2020 1.1的安裝流程

    pycharm 2020 1.1的安裝流程

    這篇文章主要介紹了pycharm 2020 1.1的安裝流程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Python實現(xiàn)PDF文字識別提取并寫入CSV文件

    Python實現(xiàn)PDF文字識別提取并寫入CSV文件

    這篇文章主要是和大家分享一個Python實現(xiàn)PDF文字識別與提取并寫入?CSV文件的腳本。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-03-03
  • Python3 微信支付(小程序支付)V3接口的實現(xiàn)

    Python3 微信支付(小程序支付)V3接口的實現(xiàn)

    本文主要介紹了Python3 微信支付(小程序支付)V3接口的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Python cv2 圖像自適應灰度直方圖均衡化處理方法

    Python cv2 圖像自適應灰度直方圖均衡化處理方法

    今天小編就為大家分享一篇Python cv2 圖像自適應灰度直方圖均衡化處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python DataFrame設置/更改列表字段/元素類型的方法

    Python DataFrame設置/更改列表字段/元素類型的方法

    今天小編就為大家分享一篇Python DataFrame設置/更改列表字段/元素類型的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python隨機生成數(shù)模塊random使用實例

    Python隨機生成數(shù)模塊random使用實例

    這篇文章主要介紹了Python隨機生成數(shù)模塊random使用實例,本文直接給出示例代碼,需要的朋友可以參考下
    2015-04-04
  • python函數(shù)的重新定義及練習

    python函數(shù)的重新定義及練習

    這篇文章主要為大家詳細介紹了python的函數(shù),使用python,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Django高級編程之自定義Field實現(xiàn)多語言

    Django高級編程之自定義Field實現(xiàn)多語言

    這篇文章主要介紹了Django高級編程之自定義Field實現(xiàn)多語言,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07

最新評論