名字/片管理系统

名字管理系统
1.一个程序如果要实现多个功能,每完成一个功能的代码紧接着就是测试。然后可以继续添加额外的功能,切勿全部功能全部完成再去测试。
2.当一串代码需要重复执行,但又不知道重复多少次,可以用while True:
遍历字符串、列表、元组获取每个字符或者元素必须for 循环

#1. 打印功能提示
print("="*50)
print("名字关系系统 V8.6")
print(" 1:添加一个新的名字")
print(" 2:删除一个名字")
print(" 3:修改一个名字")
print(" 4:查询一个名字")
print(" 5:退出系统")
print("="*50)

names = []#定义一个空的列表用来存储添加的名字,必须定义在循环外部
while True:
    #2. 获取用的选择
    num = int(input("请输入功能序号:"))
    #3. 根据用户的选择,执行相应的功能
    if num==1:
       new_name = input("请输入名字:")
       names.append(new_name)
       print(names)
    elif num==2:
       pass
    elif num==3:
       pass
    elif num==4:
       find_name = input("请输入要查询的名字:")
       if find_name in names:
          print("找到了你要找的人")
       else:
          print("查无此人")
    elif num==5:
       break
    else:
       print("您的输入有误,请重新输入")

名片管理系统

#1. 打印功能提示
print("="*50)
print("   名片管理系统 V0.01")
print(" 1. 添加一个新的名片")
print(" 2. 删除一个名片")
print(" 3. 修改一个名片")
print(" 4. 查询一个名片")
print(" 5. 显示所有的名片")
print(" 6. 退出系统")
print("="*50)

#把字典作为列表的元素
card_infors = []
while True:
    #2. 获取用户的输入
    num = int(input("请输入操作序号:"))

    #3. 根据用户的数据执行相应的功能
    if num==1:
       new_name = input("请输入新的名字:")
       new_qq = input("请输入新的QQ:")
       new_weixin = input("请输入新的微信:")
       new_addr = input("请输入新的住址:")

       #定义一个新的字典,用来存储一个新的名片
       new_infor = {}
       new_infor['name'] = new_name
       new_infor['qq'] = new_qq
       new_infor['weixin'] = new_weixin
       new_infor['addr'] = new_addr

       #将一个字典,添加到列表中
       card_infors.append(new_infor)
       print(card_infors)

    elif num==2:
       pass
    elif num==3:
       pass
    elif num==4:
       find_name = input("请输入要查询的名字:")
       #如果for循环中既输出有又输出无,可以采用for—else结构也可以用标记常量(在for循环的内部和外部各家一个变量并进行判断)解决后则个问题
       for temp in card_infors:
           if temp['name']==find_name:
           print("找到了.....")
           break
       else:
          #只要for循环的过程中没有执行到break,那么就会执行else里面的代码
          print("没有找到....")
    elif num==5:
       print("姓名\tQQ\t微信\t住址")
       #用for循环遍历列表输出每一个字典
       for temp in card_infors:
           print("%s\t%s\t%s\t%s"%(temp['name'], temp['qq'], temp['weixin'], temp['addr']))
    elif num==6:
        break
    else:
        print("输入有误,请重新输入")
    print("")    

名片管理系统函数版

#定义一个列表用来存储名片
card_infors = []
def print_menu():
    """完成打印功能菜单"""
    print("="*50)
    print("   名片管理系统 V0.01")
    print(" 1. 添加一个新的名片")
    print(" 2. 删除一个名片")
    print(" 3. 修改一个名片")
    print(" 4. 查询一个名片")
    print(" 5. 显示所有的名片")
    print(" 6. 退出系统")
    print("="*50)

def add_new_card_infor():
    """完成添加一个新的名片"""
    new_name = input("请输入新的名字:")
    new_qq = input("请输入新的QQ:")
    new_weixin = input("请输入新的微信:")
    new_addr = input("请输入新的住址:")

    #定义一个新的字典,用来存储一个新的名片
    new_infor = {}
    new_infor['name'] = new_name
    new_infor['qq'] = new_qq
    new_infor['weixin'] = new_weixin
    new_infor['addr'] = new_addr

    #将一个字典,添加到列表中
    global card_infors
    card_infors.append(new_infor)
    #print(card_infors)# for test

def find_card_infor():
    """用来查询一个名片"""
    global card_infors #修改不可变类型的全局变量需要global关键词,由于列表是可变类型的全局变量不需要这个关键词
    find_name = input("请输入要查找的姓名:")
    find_flag = 0#默认表示没有找到,这是标记变量,可以使用for-else结构
    for temp in card_infors:
        if find_name == temp["name"]:
           print("%s\t%s\t%s\t%s"%(temp['name'], temp['qq'], temp['weixin'], temp['addr']))#\t 用于对齐
           find_flag=1#表示找到了
           break   
#判断是否找到了
    if find_flag == 0:
       print("查无此人....")

def show_all_infor():
    """显示所有的名片信息"""
    global card_infors
    print("姓名\tQQ\t微信\t住址")
    for temp in card_infors:
        print("%s\t%s\t%s\t%s"%(temp['name'], temp['qq'], temp['weixin'], temp['addr']))

def main():
    """完成对整个程序的控制"""
    #1. 打印功能提示
    print_menu()
    while True:
          #2. 获取用户的输入
          num = int(input("请输入操作序号:"))
          #3. 根据用户的数据执行相应的功能
          if num==1:
             add_new_card_infor()
          elif num==2:
             pass
          elif num==3:
             pass
          elif num==4:
             find_card_infor()
          elif num==5:
             show_all_infor()
          elif num==6:
             break
          else:
             print("输入有误,请重新输入")
          print("")

#调用主函数
main()

文件管理系统文件版
程序执行完毕后会释放内存,数据会被清除。需要在程序中添加保存数据的函数把数据保存在文件中。常用的数据格式有hdf5和pkl。

#用来存储名片
card_infors = []

def print_menu():
    """完成打印功能菜单"""
    print("="*50)
    print("   名片管理系统 V0.01")
    print(" 1. 添加一个新的名片")
    print(" 2. 删除一个名片")
    print(" 3. 修改一个名片")
    print(" 4. 查询一个名片")
    print(" 5. 显示所有的名片")
    print(" 6. 保存信息")
    print(" 7. 退出系统")
    print("="*50)

def add_new_card_infor():
    """完成添加一个新的名片"""
    new_name = input("请输入新的名字:")
    new_qq = input("请输入新的QQ:")
    new_weixin = input("请输入新的微信:")
    new_addr = input("请输入新的住址:")

    #定义一个新的字典,用来存储一个新的名片
    new_infor = {}
    new_infor['name'] = new_name
    new_infor['qq'] = new_qq
    new_infor['weixin'] = new_weixin
    new_infor['addr'] = new_addr

    #将一个字典,添加到列表中
    global card_infors
    card_infors.append(new_infor)
    #print(card_infors)# for test

def find_card_infor():
    """用来查询一个名片"""
    global card_infors #由于类属性是可变类型这里可以省略global关键词
    find_name = input("请输入要查找的姓名:")
    find_flag = 0#默认表示没有找到
    for temp in card_infors:
        if find_name == temp["name"]:
            print("%s\t%s\t%s\t%s"%(temp['name'], temp['qq'], temp['weixin'], temp['addr']))
            find_flag=1#表示找到了
            break

#判断是否找到了
if find_flag == 0:
    print("查无此人....")

def show_all_infor():
    """显示所有的名片信息"""
    global card_infors
    print("姓名\tQQ\t微信\t住址")
    for temp in card_infors:
        print("%s\t%s\t%s\t%s"%(temp['name'], temp['qq'], temp['weixin'], temp['addr']))

def save_2_file():
    """把已经添加的信息保存到文件中"""
    f = open("backup.data", "w")
    f.write(str(card_infors)
    f.close()


def load_infor():
    global card_infors
    #应对文件不存在这个异常
    try:
        f = open("backup.data")
        card_infors = eval(f.read())
        f.close()
    except Exception:
        pass

def main():
    """完成对整个程序的控制"""
    #恢复(加载)之前的数据到程序中
    load_infor()
    #1. 打印功能提示
    print_menu()

    while True:
        #2. 获取用户的输入
        num = int(input("请输入操作序号:"))
        #3. 根据用户的数据执行相应的功能
        if num==1:
            add_new_card_infor()
        elif num==2:
            pass
        elif num==3:
            pass
        elif num==4:
            find_card_infor()
        elif num==5:
            show_all_infor()
        elif num==6:
            save_2_file()
        elif num==7:
            break
        else:
            print("输入有误,请重新输入")
    print("") #换行

if __name__ == "__main__":
    #调用主函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值