自学python第一天:名片管理系统

一、需求

        用python写一个名片管理系统,有新增、查找、查看、退出等功能 现在用函数封装 新增了删除和修改功能

二、实战

        先定义一个空字典,用于存储名片数据,再把菜单放进去

print('欢迎使用【名片管理系统】')
print('')
print('1. 新建名片')
print('2. 显示全部')
print('3. 查询名片')
print('0. 退出系统')
id_file = {
}
i = 0
running = True

def input_number():
    running = True
    while running:
        id_card1 = input('请输入你的操作')
        try:
            id_card = float(id_card1)
            return id_card
        except ValueError:
            print("输入错误,请重新输入!")

现在 通过while对input输入的字符串进行判定,当非数字类型时候,重新输入操作

然后再通过循环,当输入1进行新增,

i = 0
# 新增人数
def add_card():
    global i
    i += 1
    print('新增名片信息')
    list(id_file)
    name = input("请输入姓名:")
    address = input("请输入地址:")
    id_num = input("请输入身份证号:")
    qq_num = input("请输入QQ号:")
    id_file[i] = {
        "姓名": name,
        "地址": address,
        "身份证号": id_num,
        "QQ号": qq_num
    }

定义的id_file空字典 i自增循环为key值,当输入1的时候通过input为字典添加value。

然后就是2 查询,这个比较简单,可以通过print直接读取id_file就行

    elif id_card == 2:
        print('##########################')
        print('查询成功', id_file)

第三步 就是 查找。

先新增一个参数,通过range 字典的key值,去匹配name值,当匹配上的时候,给finded赋值为真,输出结果,返回跳出当前循环。检索不到就

def find_card():
    global  i
    name1 = input("请输入要查询的联系人姓名")
    finded = False
    # range 是前闭后开 [)

    for j in range(1, i + 1):
        if name1 == id_file[j]["姓名"]:
            finded = True
            print('##########################')
            print('你检索的用户是:' + str(id_file[j])) 
        break;
    if finded == False:
        print('##########################')
        print('未检索到该用户')

删除和修改

#修改 或 删除
            if finded == True:
                operation1 = int(input('1:修改,2:删除,3:返回上一级'))
                for operation in range(operation1,operation1+1):
                    if operation == 1:
                        print('operation', operation)
                        id_file[j]['姓名'] = input('请输入新的姓名')
                        id_file[j]['地址'] = input('请输入新的地址')
                        id_file[j]['身份证号码'] = input('请输入新的身份证号码')
                        id_file[j]['QQ号'] = input('请输入新的QQ号')
                        print('修改成功', id_file[j])
                    elif operation == 2:
                        i = i - 1
                        print(i)
                        del id_file[j]
                        print(i)
                        print('删除成功')

                    elif operation == 3:
                        finded == False
                    else:
                        print('请重新输入')

第四步就是 退出 

 elif id_card ==0:
            print('谢谢使用')
            running = False
        else:
            print('请重新输入')

三、完整代码

逻辑模块

from def_test import input_number
import def_test
from def_test import id_file
running2 = True
print('欢迎使用【名片管理系统】V1.0')
print('')
print('1. 新建名片')
print('2. 显示全部')
print('3. 查询名片')
print('0. 退出系统')
while running2 :
#判断input输入是否为数字
    id_card = input_number()
    print("你输入的数字是: ", id_card)
    if  id_card == 1:
        def_test.add_card()
    elif id_card == 2:
        print('查询成功:',id_file)
    elif id_card == 3:
        def_test.find_card()
    elif id_card == 0:
        print('谢谢使用')
        running2 = False
    else:
        print('请重新输入')


功能模块def_test.py

id_file={}
# 对操作输入做限制
def input_number():
    running = True
    while running:
        id_card1 = input('请输入你的操作')
        try:
            id_card = float(id_card1)
            return id_card
        except ValueError:
            print("输入错误,请重新输入!")

i = 0
# 新增人数
def add_card():
    global i
    i += 1
    print('新增名片信息')
    list(id_file)
    name = input("请输入姓名:")
    address = input("请输入地址:")
    id_num = input("请输入身份证号:")
    qq_num = input("请输入QQ号:")
    id_file[i] = {
        "姓名": name,
        "地址": address,
        "身份证号": id_num,
        "QQ号": qq_num
    }

# 查找
def find_card():
    global  i
    name1 = input("请输入要查询的联系人姓名")
    finded = False
    # range 是前闭后开 [)

    for j in range(1, i + 1):
        if name1 == id_file[j]["姓名"]:
            finded = True
            print('##########################')
            print('你检索的用户是:' + str(id_file[j]))
            #修改 或 删除
            if finded == True:
                operation1 = int(input('1:修改,2:删除,3:返回上一级'))
                for operation in range(operation1,operation1+1):
                    if operation == 1:
                        print('operation', operation)
                        id_file[j]['姓名'] = input('请输入新的姓名')
                        id_file[j]['地址'] = input('请输入新的地址')
                        id_file[j]['身份证号码'] = input('请输入新的身份证号码')
                        id_file[j]['QQ号'] = input('请输入新的QQ号')
                        print('修改成功', id_file[j])
                    elif operation == 2:
                        i = i - 1
                        print(i)
                        print('operation:',operation)
                        list(id_file)
                        print(id_file)
                        del id_file[j]
                        print(i)
                        print('删除成功')

                    elif operation == 3:
                        finded == False
                    else:
                        print('请重新输入')
            break;
    if finded == False:
        print('##########################')
        print('未检索到该用户')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值