Python名片管理系统


第一次在CSDN发表文章,学习了一点点Python的基础应用,希望能和广大码友交流学习,提升个人的不足,学习到更多代码知识。

print打印出具有颜色信息的字符

 名片管理系统的展示

使用方法与介绍

这里是引用:终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。
转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。

终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。
转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。
代码如下

print("\033[0:31:40m需要打印的字体\033[0m")
print("\033[0:31:40m需要打印的字体")
print("\033[1:31:40m需要打印的字体\033[0m")

展示如图
在这里插入图片描述

学习总结

print("\033[a:b:cm输入的字体\033]0")
a,b,c的参数位置可以随意调整,m为字体输入开始字符,
m前的值为字体颜色(30~37),其他两个可以省略,
数值只需记得三组数据即可:
第一组是显示方式: 0(默认)1(高亮)22(非粗体)4(下划线)24(非下划线)5(闪烁)25(非闪烁)7(反显)27(非反显)
第二组是字体颜色(30~37):30(黑色)31(红色)32(绿色)33(黄色)34(蓝色)35(洋 红)36(青色)37(白色)
第三组是字体的背景颜色(40~47,就是在字体颜色的8进制上在最高位上+1):
 40(黑色)41(红色)42(绿色)43(黄色)44(蓝色)45(洋 红)46(青色)47(白色)

名片管理系统的编写

思维导图

主要使用字典以及列表的相关知识,将一组信息放入在设定好的字典中,每一个录入信息对于字典中的一组key-value,我设定的是一个字典内包含了4组信息(name、sex、number、QQ)。之后将字典{}放入到列表]\中存储,每个单位的信息不会相互影响[{A},{B},{C}、、、、]。在读取中通过for循环读取。
创建了两个.py文件,一个用来主程序(card_all.py)的运行,另一个(card_def.py)包含我所有使用的函数,降低代码的编写难度,避免造成混乱。
在这里插入图片描述

程序运行如图

功能菜单
在这里插入图片描述
新建名片
在这里插入图片描述
显示功能
在这里插入图片描述
查询功能
在这里插入图片描述

主程序

根据预设的功能选择编写好的函数。通过import导入函数并设定其为d,通过简单的if-elif-else来进行输入判断并且进入相应的环节中。并且通过测试得到我们想要的字体颜色。

import card_def as d
while True:
    d.card_menu()
    num=int(input("\033[1:35m输入要进行的操作:\033[0m"))
    if num==0:
        break
    elif num==1:
        d.creat_card()
    elif num==2:
        d.show_card()
    elif num==3:
        d.search_card()
    else:
        print("\033[1:31m输入有误重新输入\033[0m")
print("\033[1:35m欢迎使用本系统\033[0m")

函数块文件

card_list=[]
def card_menu():#功能菜单函数
    print("\033[35m*\033[0m"*50)
    print("\033[1:35m欢迎使用名片管理系统\033[0m")
    print("\033[35m1.新建名片\033[0m")
    print("\033[35m2.显示名片\033[0m")
    print("\033[35m3.查询名片\033[0m")
    print("\033[35m0.退出\033[0m")
    print("\033[35m*\033[0m"*50)
#card_menu()
def creat_card():#新建功能函数
    print("\033[35m*\033[0m"*50)
    print("\033[1:35m功能:新建名片\033[0m")
    name=input("\033[35m输入姓名:\033[0m")
    sex=input("\033[35m输入性别:\033[0m")
    number=input("\033[35m输入电话:\033[0m")
    qq=input("\033[35m输入QQ:\033[0m")
    card_dict={"name":name,"sex":sex,"number":number,"qq":qq}
    card_list.append(card_dict)
    #print(card_dict)
    #print(card_list)
    print("\033[35m[%s]的名片添加成功\033[0m"%name)
    print("\033[35m*\033[0m" * 50)
#creat_card()
def show_card():#展示功能函数
    print("\033[35m*\033[0m" * 50)
    print("\033[1:35m功能:显示所有名片\033[0m")
    if card_list:
        print("\033[35mname\t\t\t","sex\t\t\t","number\t\t\t","qq\t\t\t")
        print("\033[35m*\033[0m" * 50)
        for card_dict in card_list:
            for key in card_dict:
                print("\033[35m%s"%card_dict[key],end="\t\t\t\t")
            print()
    else:
        print("\033[45m没有名片\033[0m")
    print("\033[35m*\033[0m" * 50)
#show_card()
def search_card():#查询功能函数
    black="\t\t\t\t"
    print("\033[35m*\033[0m" * 50)
    print("\033[1:35m功能:查找信息\033[0m")
    name=input("\033[35m输入查找姓名:\033[0m")
    for card_dict in card_list:
        for key in card_dict:
            if card_dict["name"]==name:
                print("\033[1:35mname\t\t","sex\t\t\t","phone\t\t\t","qq\t\t")
                print("\033[35m=\033[0m" * 50)
                #print(,end="\t")
                s=card_dict["name"]+black+card_dict["sex"]+black+card_dict["number"]+black+card_dict["qq"]
                print("\033[1:35m%s\033[0m"%s)
                print("\033[35m=\033[0m" * 50)
                deal_card(card_dict)
                return
    print("\033[1:31m用户不存在")
def deal_card(card_dict):#更改以及删除功能菜单
    num=int(input("\033[1:35m输入对名片的操作.\n1:修改\t2:删除\t0:返回上级菜单\n\033[0m"),)
    if num==1:
        print("\033[35m-----更改名片功能------\033[0m")
        update_card(card_dict)
    elif num==2:
        print("\033[35m-----删除名片功能-----\033[0m")
        delete_card(card_dict)
    elif num==0:
        return
    else:
        print("\033[1:31m输入错误,重新输入\033[0m")
        deal_card(card_dict)
def update_card(card_dict):#更新功能函数
    name=input("\033[35m请输入修改后的名字:\033[0m")
    sex=input("\033[35m请输入修改后的性别:\033[0m")
    number=input("\033[35m请输入修改后的电话:\033[0m")
    qq=input("\033[35m请输入修改后的qq:\033[0m")
    if name:
        card_dict["name"]=name
    if sex:
        card_dict["sex"]=sex
    if number:
        card_dict["number"]=number
    if qq:
        card_dict["qq"]=qq
    print("\033[1:31m修改成功")
def delete_card(card_dict):#删除功能展示
    answer=input("\033[1:31m是否确定删除y/n\n")
    if answer=='y' or 'Y':
        card_list.remove(card_dict)
        print("\033[1:31m删除成功\033[0m")
    elif answer=='N'or'n':
        return
    else:
        print("\033[1:31m您输入的有错误,重新输入\033[0m")
        deal_card(card_dict)





编写中所遇到的问题以及解决

1、在函数文件中要新建空的列表,card_list=[],在新建名片功能中,我们将一个人的四组key-value信息放入在一个字典中,再将其放入在一个列表中,这个列表是全局变量,在整个程序都需要其提供或者输入信息。
2、在更改以及删除名片功能菜单中,出现了return,在理解这个return上出现了问题,通过其他大佬发表的文章中得知,这个return相当于返回一个空值,退出当前的函数。
3、在展示与查询功能中对循环嵌套进行了学习。

    for card_dict in card_list:
        for key in card_dict:

在第一个for中card_dict只是一个name,可以随意修改,将列表中的每一组字典进行赋名,名字就为card_dict,在第二个for中为同一个数据。第二个for中的key就是针对每一个字典内的key进行读取,并且赋予给key,在之后的循环中通过字典输出的方法输出value即可。
打印字体变色学习地址

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值