当前位置 博文首页 > 泥鳅不怕水:【PY从0到1】第七节 函数

    泥鳅不怕水:【PY从0到1】第七节 函数

    作者:泥鳅不怕水 时间:2021-02-01 20:21

    # 7 第七节 函数
    # 函数对于编程语言来说是一块重量级的内容。
    # 他可以实现或者简化编写的代码。
    # 编写好特定功能的函数后,就可以重复调用函数来完成任务。
    # 下面我们就用函数的形式来封装前面学过的知识。
    
    # 1> 简单的函数结构
    def plus_plus():#<---这是函数名
        '''
        运算既定的数字加法 #<-----这是函数功能的注释
        '''
        a = 1 + 1
        return a#<-----return代表将a值赋值给plus_plus
    
    print(plus_plus())#<-----打印plus_plus
    # 输出结果如下:
    # 2
    # 上面讲的是函数最简单的结构
    
    # 2> 给函数加上参数
    # 我们只要稍作修改就可以使plus_plus变成一个加法器。
    def plus_plus(a,b):
        '''
        一个简单的加法器
        '''
        c = a + b
        print(c)
    
    plus_plus(2, 4)#默认a = 2,b = 4
    # 输出为:6
    # 又或使用这样的语句:
    # plus_plus(a = 2,b = 4)
    # plus_plus(b = 4,a = 2)
    
    # 我们再定义一个新的函数
    def introduce(name,age,like_foods='hamburgers'):
        '''
        一个简单的自我介绍
        '''
        a = 'My name is '
        b = 'I am '
        c = ' years old. '
        d = 'I like '
        print(
            a + 
            name.title() + 
            '. ' + 
            b + 
            str(age) + 
            c + 
            d +
            like_foods + 
            '. '
            )
    
    introduce('kitty', 6)
    # 输出结果如下:
    # My name is Kitty. I am 6 years old. I like hamburgers. 
    # 其中like_foods是默认为汉堡。我们一般把有默认值的参数置于末尾。
    # 如果想修改默认值,只需要如下操作。
    introduce('Tom', 8,like_foods='noodles')
    # 输出如下:
    # My name is Tom. I am 8 years old. I like noodles. 
    
    # 3> 可选实参
    def introduce(name,age,like_foods=''):#给like_foods传入空字符串
        '''
        一个简单的自我介绍
        '''
        a = 'My name is '
        b = 'I am '
        c = ' years old. '
        d = 'I like '
        if like_foods:#<----如果like_foods不为空,就执行下方,否则执行else。
            '''
            做一个判断,如果没有输入喜欢的食物就不输出相关语句。
            '''
            print(
                a + name.title() + 
                '. ' + 
                b + 
                str(age) + 
                c + 
                d + 
                like_foods + 
                '.'
                )
        else:
            print(a + 
                  name.title() + 
                  '. ' + 
                  b + 
                  str(age) + 
                  c
                  )
    
    introduce('lisa', 8)
    # 输出结果如下:
    # My name is Lisa. I am 8 years old. 
    introduce('lisa', 8,like_foods='noodles')
    # 输出结果如下:
    # My name is Lisa. I am 8 years old. I like noodles. 
    
    # 4> 每个函数最好只有一个功能
    # 做个签到模型
    def signature_system(did_not_sign_in,already_signed_in):
        '''提示签到成功'''
        while did_not_sign_in:
            signing = did_not_sign_in.pop()
            print('\n你好,' + signing.title() + '。签到成功。')
            already_signed_in.append(signing)
            
    def show_signature(already_signed_in):
        '''展示签到列表'''
        print('\n已经按时签到的员工:')
        for signature in already_signed_in:
            print('- ' + signature)
            
    a = ['xixi','didi','huanhuan']
    b = []
    signature_system(a,b)
    show_signature(b)
    # 代码运行结果如下:
    # 你好,Huanhuan。签到成功。
    
    # 你好,Didi。签到成功。
    
    # 你好,Xixi。签到成功。
    
    # 已经按时签到的员工:
    # - huanhuan
    # - didi
    # - xixi
    
    # 在以后的编写中,尽量做到单个函数只实现一个具体的内容。这样可以让代码看起来通俗易懂。
            
    # 小技巧:
    # 用[:]做复制操作
    a = ['xixi','didi','lala']
    b = a[:]
    print(b)
    # 结果如下:
    # ['xixi', 'didi', 'lala']
    
    # 5> 设置任意数量的参数
    # 用*告诉Python我们传入函数的变量是不确定数量的。
    def guest(*b):
        print("\n欢迎您们的到来!")
        for a in b:
            print("- " + a)
    
    guest('xixi','didi','huanhuan')
    #运行结果如下:
    # 
    # 欢迎您们的到来!
    # - xixi
    # - didi
    # - huanhuan
    
    # 将*改为**就可以传入任意数量的字典。
    
    # 自己编写函数时一定要遵循以下编写习惯:
    # 1>给函数命名时,只是用小写字母和下划线。
    # 2>函数名通俗易懂,最好以其实现的功能为名称。
    # 3>每个函数都应该有注释,短注释用''' ''',长注释用下面的格式:
    # '''
    # xxxx
    # '''
    # 4>给参数指定默认值时,不要在等号的两边添加空格。
    # 5>如果函数包含的参数过多,超过了一行79个字符,则要用下方的格式:
    # def function_name(
    #         parameter_0,parameter_1,parameter_2
    #         parameter_3,parameter_4,parameter_5):
    #     '''
    #     xxxxx
    #     '''
    # 6>函数与函数之间要有两个回车分开。
    # 7>至少遵循以上编写原则。

     

    bk