• day 4 名片管理系统 -函数版


    修改没有用函数的程序

    具有独立功能的代码块

    源程序

    #1.打印功能信息
    print("*"*50)
    print("	名片管理系统 V3	")
    print("1:添加一个名片")
    print("2:删除一个名片")
    print("3:修改一个名片")
    print("4:查询一个名片")
    print("5:显示所有")
    print("6:退出系统")
    print("*"*50)
    
    #定义一个新的list列表,用来存储名片
    card_infors = []
    while True:
        #2.获取用户的输入
        num = int(input("请输入你要的功能:"))
    
        #3.根据用户的输入,执行相应的功能
        if num == 1:
            new_name = input("你要添加的姓名:")
            new_age = input("你要添加的年龄:")
            new_qq = input("你要添加的qq:")
            new_addr = input("你要添加的地址:")
            
            #定义1个新的字典dict,用来存储新的名片
            new_infor = {}
            new_infor["name"] = new_name
            new_infor["age"] = new_age
            new_infor["qq"] = new_qq
            new_infor["addr"] = new_addr
    
            #将1个字典dict添加到列表list
            card_infors.append(new_infor)
    
            #print(card_infors)  #for test  测试用的  
    
    
        elif num == 2:
            pass
        elif num == 3:
            pass
    
        elif num == 4:
            find_name = input("请输入你要查询的名字:")
            flag = 0 #默认 没有查到此人
            for tmp in card_infors:
                if find_name in tmp["name"]:
                    print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"]))
                    flag = 1   #表示查到此人了
                    break
             #判断是否找到了   
            if flag == 0:
                print("查无此人")
    
        elif num == 5:
            print("姓名	年龄	qq号	地址")
            for tmp in card_infors:
                print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"]))
        elif num == 6:
            break
        else:
            print("你输入的有误,请重新输入")
    
        print("")
    View Code

    1.版本1:打印菜单功能

    刚开始写程序一刹那就用函数

    改一点,实验一下

    def print_menu():
        print("*"*50)
        print("	名片管理系统 V3	")
        print("1:添加一个名片")
        print("2:删除一个名片")
        print("3:修改一个名片")
        print("4:查询一个名片")
        print("5:显示所有")
        print("6:退出系统")
        print("*"*50)
    
    # 1.打印功能信息
    print_menu()
    
    
    #定义一个新的list列表,用来存储名片
    card_infors = []
    while True:
        #2.获取用户的输入
        num = int(input("请输入你要的功能:"))
    
        #3.根据用户的输入,执行相应的功能
        if num == 1:
            new_name = input("你要添加的姓名:")
            new_age = input("你要添加的年龄:")
            new_qq = input("你要添加的qq:")
            new_addr = input("你要添加的地址:")
            
            #定义1个新的字典dict,用来存储新的名片
            new_infor = {}
            new_infor["name"] = new_name
            new_infor["age"] = new_age
            new_infor["qq"] = new_qq
            new_infor["addr"] = new_addr
    
            #将1个字典dict添加到列表list
            card_infors.append(new_infor)
    
            #print(card_infors)  #for test  测试用的  
    
    
        elif num == 2:
            pass
        elif num == 3:
            pass
    
        elif num == 4:
            find_name = input("请输入你要查询的名字:")
            flag = 0 #默认 没有查到此人
            for tmp in card_infors:
                if find_name in tmp["name"]:
                    print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"]))
                    flag = 1   #表示查到此人了
                    break
             #判断是否找到了   
            if flag == 0:
                print("查无此人")
    
        elif num == 5:
            print("姓名	年龄	qq号	地址")
            for tmp in card_infors:
                print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"]))
        elif num == 6:
            break
        else:
            print("你输入的有误,请重新输入")
    
        print("")

    2.版本2:

     新定义的函数:需不需要参数 ,需要几个

            需不需要返回值,需要返回什么样的值

    #定义一个新的list列表,用来存储名片
    card_infors = []
    
    def print_menu():
        print("*"*50)
        print("	名片管理系统 V3	")
        print("1:添加一个名片")
        print("2:删除一个名片")
        print("3:修改一个名片")
        print("4:查询一个名片")
        print("5:显示所有")
        print("6:退出系统")
        print("*"*50)
    
    def add_new_card_infor():
        new_name = input("你要添加的姓名:")
        new_age = input("你要添加的年龄:")
        new_qq = input("你要添加的qq:")
        new_addr = input("你要添加的地址:")
        
        #定义1个新的字典dict,用来存储新的名片
        new_infor = {}
        new_infor["name"] = new_name
        new_infor["age"] = new_age
        new_infor["qq"] = new_qq
        new_infor["addr"] = new_addr
    
        #将1个字典dict添加到列表list
        global card_infors
        card_infors.append(new_infor)
        #print(card_infors)  #for test  测试用的  
    
    
    # 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_name = input("请输入你要查询的名字:")
            flag = 0 #默认 没有查到此人
            for tmp in card_infors:
                if find_name in tmp["name"]:
                    print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"]))
                    flag = 1   #表示查到此人了
                    break
             #判断是否找到了   
            if flag == 0:
                print("查无此人")
    
        elif num == 5:
            print("姓名	年龄	qq号	地址")
            for tmp in card_infors:
                print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"]))
        elif num == 6:
            break
        else:
            print("你输入的有误,请重新输入")
    
        print("")

    3.函数文档说明

      """函数说明文档,可以写上函数的功能,以防止后面遗忘"""

       

     4.版本3:添加函数说明 文档

    #定义一个新的list列表,用来存储名片
    card_infors = []
    
    def print_menu():
        """完成打印功能"""
        print("*"*50)
        print("	名片管理系统 V3	")
        print("1:添加一个名片")
        print("2:删除一个名片")
        print("3:修改一个名片")
        print("4:查询一个名片")
        print("5:显示所有")
        print("6:退出系统")
        print("*"*50)
    
    def add_new_card_infor():
        """完成添加新名片功能"""
        new_name = input("你要添加的姓名:")
        new_age = input("你要添加的年龄:")
        new_qq = input("你要添加的qq:")
        new_addr = input("你要添加的地址:")
        
        #定义1个新的字典dict,用来存储新的名片
        new_infor = {}
        new_infor["name"] = new_name
        new_infor["age"] = new_age
        new_infor["qq"] = new_qq
        new_infor["addr"] = new_addr
    
        #将1个字典dict添加到列表list
        global card_infors
        card_infors.append(new_infor)
        #print(card_infors)  #for test  测试用的  
    
    def find_card_infor():
        """完成查询1个名片的功能"""
        global card_infors                 #全局变量一般声明在开头
    
        find_name = input("请输入你要查询的名字:")
        flag = 0 #默认 没有查到此人
        for tmp in card_infors:
            if find_name in tmp["name"]:
                print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"]))
                flag = 1   #表示查到此人了
                break
         #判断是否找到了   
        if flag == 0:
            print("查无此人")
    
    def show_card_infor():
        """完成显示名片""" 
        global card_infors               #全局变量一般声明在开头
    
        print("姓名	年龄	qq号	地址")
        for tmp in card_infors:
            print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"]))
    
    
    # 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_card_infor()
    
        elif num == 6:
            break
        else:
            print("你输入的有误,请重新输入")
    
        print("")

    5.版本4.main主函数

    #定义一个新的list列表,用来存储名片
    card_infors = []
    
    def print_menu():
        """完成打印功能"""
        print("*"*50)
        print("	名片管理系统 V3	")
        print("1:添加一个名片")
        print("2:删除一个名片")
        print("3:修改一个名片")
        print("4:查询一个名片")
        print("5:显示所有")
        print("6:退出系统")
        print("*"*50)
    
    def add_new_card_infor():
        """完成添加新名片功能"""
        new_name = input("你要添加的姓名:")
        new_age = input("你要添加的年龄:")
        new_qq = input("你要添加的qq:")
        new_addr = input("你要添加的地址:")
        
        #定义1个新的字典dict,用来存储新的名片
        new_infor = {}
        new_infor["name"] = new_name
        new_infor["age"] = new_age
        new_infor["qq"] = new_qq
        new_infor["addr"] = new_addr
    
        #将1个字典dict添加到列表list
        global card_infors
        card_infors.append(new_infor)
        #print(card_infors)  #for test  测试用的  
    
    def find_card_infor():
        """完成查询1个名片的功能"""
        global card_infors
        find_name = input("请输入你要查询的名字:")
        flag = 0 #默认 没有查到此人
        for tmp in card_infors:
            if find_name in tmp["name"]:
                print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["addr"]))
                flag = 1   #表示查到此人了
                break
         #判断是否找到了   
        if flag == 0:
            print("查无此人")
    
    def show_card_infor():
        """完成显示名片"""
        global card_infors
        print("姓名	年龄	qq号	地址")
        for tmp in card_infors:
            print("%s	%s	%s	%s"%(tmp["name"],tmp["age"],tmp["qq"],tmp["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_card_infor()
    
            elif num == 6:
                break
            else:
                print("你输入的有误,请重新输入")
    
            print("")
    
    #调用主函数
    main()

    6.主要流程

        

     7.列表和字典可以当做全局变量来用

    可以不用global ,但是建议用global

    nums = [11,22,33]
    infor = {"name":"alex"}
    
    def test():
        #for num in nums:
         #   print(num)
        nums.append(44)
        infor["age"] = 18
    
    def test2():
        print(nums)
        print(infor)
    
    test()
    test2()

         

  • 相关阅读:
    am335x gpio控制
    递归删除子目录下所有.la后缀文件
    linphone 在am335x的编译过程
    linphone 调试信息
    【POJ 3020】Antenna Placement(二分图匹配)
    【POJ 1062】昂贵的聘礼(最短路)
    【POJ 2485】Highways(Prim最小生成树)
    【Gym 100947E】Qwerty78 Trip(组合数取模/费马小定理)
    解决already defined in .obj 的问题(定义/声明的区别)
    C语言+SDL2 图形化编程
  • 原文地址:https://www.cnblogs.com/venicid/p/7862720.html
Copyright © 2020-2023  润新知