python课程设计编写电子通讯录_用Python实现简单通讯录
一個(gè)簡(jiǎn)單的通訊錄例子
#!/usr/bin/python
__author__ = 'fierce'
#coding:utf-8
import os #引用os模塊
import pickle #應(yīng)用pickle模塊
Path='/home/Person.data' #全局變量,這里是通訊錄物理路徑
#判斷通訊錄是否存在,不存在則創(chuàng)建空通訊錄
if os.path.exists(Path) == False: #判斷通訊錄是否存在
f=open((Path),'wb') #以二進(jìn)制寫模式打開通訊錄
temp={'total': 0} #局部變量,用于計(jì)算通訊錄的人數(shù)
pickle.dump(temp,f) #將對(duì)象temp保存到f中
f.close() #關(guān)閉f
else:
pass #空函數(shù)
#添加聯(lián)系人
def add(): #自定義添加函數(shù)
f=open((Path),'rb') #以二進(jìn)制讀模式打開通訊錄
a=pickle.load(f) #從f中讀取信息為數(shù)組的形式
f.close #關(guān)閉f
b=0 #自定義局部變量
name = input('請(qǐng)輸入要添加聯(lián)系人的姓名:') #獲取輸入,這里是姓名
for key in a.keys(): #循環(huán)key為自定義,a.keys()為從通訊錄讀出來所有key
b+=1 #自定義變量自增
if key==name and b <= a['total']+1: #判斷,滿足條件執(zhí)行
print("聯(lián)系人已存在,添加失敗!")
break #跳出循環(huán)
if b==a['total']+1 and key != name: #判斷,滿足條件執(zhí)行
number = input('請(qǐng)輸入號(hào)碼:') #獲取輸入
information={name : number} #附值
a['total']+=1 #total+1
a.update(information) #更新a對(duì)象
f=open((Path),'wb') #以二進(jìn)制寫模式打開通訊錄
pickle.dump(a,f) #把a(bǔ)對(duì)象寫入f
f.close() #關(guān)閉f
print('添加成功')
break #跳出循環(huán)
#顯示所有聯(lián)系人
def showall():
f = open((Path),'rb')
a=pickle.load(f)
print("一共有{}個(gè)聯(lián)系人.".format(a['total']))
for key in a.keys():
if key != 'total':
print("{""}:{""}".format(key,a[key]))
f.close
#推出通訊錄
def exit():
exec("quit()")
#查找
def search(name):
f = open((Path),'rb')
a=pickle.load(f)
b=0
for key in a.keys():
b+=1
if key==name and b<=a['total']+1:
print("{}的號(hào)碼是:{}".format(name,a[key]))
break
if b==a['total']+1 and key != name:
print("聯(lián)系人不存在")
break
#刪除
def deleate(name):
f=open((Path),'rb')
a=pickle.load(f)
f.close()
b=0
for key in a.keys():
b+=1
if key==name and b<=a['total']+1:
a.pop(name)
a['total']-=1
f=open((Path),'wb')
pickle.dump(a,f)
f.close()
print("刪除成功!")
break
if b==a['total']+1 and key != name:
print("聯(lián)系人不存在!無法刪除!")
break
#修改
def change():
x=input("請(qǐng)輸入所要修改的聯(lián)系人姓名:")
f=open((Path),'rb')
a=pickle.load(f)
f.close()
b=0
for key in a.keys():
b+=1
if key==x and b<=a['total']+1:
y=input("請(qǐng)輸入修改后的號(hào)碼:")
a[key]=y
f=open((Path),'wb')
pickle.dump(a,f)
f.close()
print("修改成功!")
break
if b==a['total']+1 and key != name:
print("聯(lián)系人不存在")
break
#界面
def point():
print("*****************************")
print("顯示提示信息:*")
print("顯示所有聯(lián)系人:0")
print("查找聯(lián)系人:1")
print("添加聯(lián)系人:2")
print("刪除聯(lián)系人:3")
print("更改聯(lián)系人資料:4")
print("退出通訊錄:5")
print("*****************************")
point()
#主進(jìn)程
while True: #循環(huán)
x=input("請(qǐng)輸入您的選擇:") #獲取輸入
if x == 2: #判斷輸入
add() #調(diào)用添加函數(shù)
continue #結(jié)束本次循環(huán),重新開始下一輪循環(huán)
if x == 0:
showall() #調(diào)用顯示全部函數(shù)
continue #結(jié)束本次循環(huán),重新開始下一輪循環(huán)
if x == 5:
exit() #調(diào)用推出函數(shù)
continue #結(jié)束本次循環(huán),重新開始下一輪循環(huán)
if x == 1:
name = input("請(qǐng)輸入所要查找的聯(lián)系人姓名:")
search(name) #調(diào)用查找函數(shù),需要傳一個(gè)參數(shù):姓名
continue #結(jié)束本次循環(huán),重新開始下一輪循環(huán)
if x == 3:
name = input("請(qǐng)輸入所要?jiǎng)h除的聯(lián)系人姓名:")
deleate(name) #調(diào)用刪除函數(shù),需要傳一個(gè)參數(shù):姓名
continue #結(jié)束本次循環(huán),重新開始下一輪循環(huán)
if x == 4:
change() #調(diào)用修改函數(shù)
continue #結(jié)束本次循環(huán),重新開始下一輪循環(huán)
if x == '*':
point()
else:
print("輸入選項(xiàng)不存在,請(qǐng)重新輸入!")
continue #結(jié)束本次循環(huán),重新開始下一輪循環(huán)
總結(jié)
以上是生活随笔為你收集整理的python课程设计编写电子通讯录_用Python实现简单通讯录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实现程序安装_使用pytho
- 下一篇: python常用的包_Python3之常