通讯录功能描述

请创建一个通讯录,用来保存联系人和电话号码。在通讯录中,我们可以查找某个联系人,如果找到则给出查找的联系人姓名及其电话号码,否则给出查无此人的提示。通讯录的核心功能是添加联系人及其电话号码,如果添加的联系人已存在,则无法再添加;还可以删除某一个联系人及其电话号码;如果不想使用了,则可以退出通讯录。

功能实现

功能导图表示:

python列表联系人 python添加联系人_python

函数设计

  1. 建立基础变量
  2. 输出功能及对应数字
  3. 判断数字是否正常
  4. 进入循环体内
  5. 当且仅当输入4时结束

步骤实现

建立变量

#建立信息
AddressList = {"张三":'01234567890'}
Operate_List = ["查询联系人资料","添加联系人","删除联系人"]

循环构建

由于部分功能重复,涉及到递归,再这里所有循环均选择建立函数:

循环

首先构建一级大循环,即输入数字功能循环:

#判定需要进行什么样的功能
def Operate_number():
    Operate = int(input("请根据上述功能数字输入您要进行的操作\n"))
    if Operate in range(1,5):
        AddressList_Operate(Operate)
    else:
        print("您输入的数字不对!")
        Operate_number()

再构建不同分支的循环:

#分支执行
def AddressList_Operate(Operate_Num):
    if Operate_Num != 4:
        print("您选择的操作为:",Operate_List[Operate_Num-1])
        OperateStr = "请输入要"+Operate_List[Operate_Num-1][:2]+"的姓名:\n"
        name = input(OperateStr)
        if AddressList.get(name):                              #判断姓名是否存在
            if Operate_Num == 1:
                number = AddressList_check(name)
                if number:                                     #按级别返回值
                    AddressList_Operate(Operate_Num)
                else:
                    Operate_number()
            elif Operate_Num == 2:
                print("您所添加的联系人已经存在,无法继续添加")
                AdressList_Continue(Operate_Num)
            elif Operate_Num == 3:
                number = AddressList_Delete(name)
                if number:
                    AddressList_Operate(Operate_Num)
                else:
                    Operate_number()
        else:
            if Operate_Num == 2:
                number = AddressList_Add(name)
                if number:
                    AddressList_Operate(Operate_Num)
                else:
                    Operate_number()
            else:
                print("您所输入的联系人不存在,请重新确认后输入!")
                Operate_none = "是否继续进行" + Operate_List[Operate_Num-1] + "操作?(yes or no):"
                NoneNum = input(Operate_none)
                if NoneNum == "yes":
                    AddressList_Operate(Operate_Num)
                Operate_number()
    else:
        print("--- 感谢使用 ---")
        return 0

以及二层循环是否重复进行的判定:

#是否继续重复操作判定
def AdressList_Continue(number):
    answerstr = "是否继续进行"+Operate_List[number-1][:2]+"操作?(yes or no): "
    answer = input(answerstr)
    if answer == "yes":
        return 1
    else:
        return 0
分支设计

构建AddressList_check(name)、AddressList_Add(name)和AddressList_Delete(name)函数。

#执行查询功能
def AddressList_check(name):
    print("您查询的",name,"的电话号码是:",AddressList[name],"\n\n")
    return AdressList_Continue(1)

#执行添加功能
def AddressList_Add(name):
    AddressList.update({name:input("请输入电话号码: ")})
    return AdressList_Continue(2)

#执行删除功能
def AddressList_Delete(name):
    del(AddressList[name])
    print("--- 删除成功 ---")
    return AdressList_Continue(3)

###主体执行
主要部分由于在前面有设计,主体执行变得十分简单:

#主体执行输出    
print("---欢迎使用我的通讯录---")
print("---1 查询联系人资料---")
print("---2 添加联系人---")
print("---3 删除联系人---")
print("---4 退出---")
Operate_number()

输出演示

python列表联系人 python添加联系人_python列表联系人_02