乐愚社区Beta

 编程语言  >  0基础学python(八)

0基础学python(八)

P2P  L3  • 2020-11-01 • 回复 5 • 只看楼主举报    

今天做一个简单的名片管理系统简单理解一下函数

首先可以给这个小程序定义几个功能

def print_menu():
    print("*"*50)
    print("   名片管理系统 V9.999")
    print(" 1. 添加一个新的名片")
    print(" 2. 删除一个名片")
    print(" 3. 修改一个名片")
    print(" 4. 查询一个名片")
    print(" 5. 显示所有的名片")
    print(" 6. 退出系统")
    print("*"*50)

这边注意一下因为我们只是打印一个菜单,仅仅显示就ok了,并不需要返回值,就像小时候玩拳皇那类单机游戏的时候最开始的界面都是固定的,让你选择什么模式,是人机还是玩家vs玩家

接下来我们做第一个功能添加名片,当你添加完之后一定要让用户能查询到,所以应该有个全局变量来储存一些信息

#用来存储名片
card_infors = []

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

让用户输入一些信息,用变量储存起来,为了方便观察可以用字典的方式加上key,之后进行global进行声明,对全局变量就行修改,将用户输入的数据添加到全局变量中,以便后续的查询等操作

接下来我们进行查询操作

def find_card_infor():
    global card_infors

    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']))

接下来我们进行函数的调用

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("输入有误,请重新输入")

当函数设置了n个参数,但是用户输入的参数大于n时,可以用*args,即将多余的参数扔给*args例如

def sum_2_nums(a,b,*args):
    print("-"*30)
    print(a)
    print(b)
    print(args)

    result = a+b
    for num in args:
        result+=num
    print("result=%d"%result)

sum_2_nums(11,22,33,44,55,66,77)

*的用法不止函数,例如

a=[1,2,3,4,5]
num_1,num_2,*num_3 = a
print(num_1)
print(num_2)
peint(num_3)

**kwargs,以字典的方式

def fun(**kargs): 
    print(kargs)
fun(x=1,a=2,b=3,c=4)

函数就讲到这里吧,我是真的不想讲类 了??随缘更新吧


5条回帖
何木木  L0  评论于
(0)  回复(1) 1#
刚学python,大佬牛皮
P2P 楼主 :一起加油
发表在2020-11-02 回复
  
:)
P2P 楼主  L3  评论于
(0)  回复(0) 2#
用飞机大战来讲类吧
含了个秋  L0  评论于
(0)  回复(0) 4#
大佬讲的是真好,就是没有基础,看着有点懵逼
还没注册帐号?快来注册社区帐号,和我们一起嗨起来!
关于本社区

集各类兴趣爱好于一身的轻量化交流社区,在此您可以和他人一起分享交流您觉得有价值的内容,社区鼓励大家发表原创内容,为社区添砖加瓦!

发帖奖励 → 社区版规 → 招聘版主 →
推荐版块
扫描二维码下载社区APP
回到顶部