美文网首页
Python学习总结【连载】(七)

Python学习总结【连载】(七)

作者: Juttachen_8e9d | 来源:发表于2018-06-21 17:21 被阅读17次

    Python学习总结【连载】(七)

    2018.06.21 Juttachen


    概述

    + 25 函数

    • 函数概述
    • 函数的声明
    • 函数的调用

    二十五、函数

    1.函数概述

    函数就是实现某一特定功能的代码块,在类中,函数又叫方法。
    (也就是对某一个功能的封装)
    为什么要用函数?
    例子:
    1.微信飞机大战
    飞机的功能:左移、右移、上移、下移、发射子弹等
    2.汽车左转右转

    没有函数的时候:
    问题:
    1.一样的功能对应的代码,需要重复写很多次(代码冗余)
    2.如果功能发生改变的时候,需要修改很多位置的代码
    怎么解决上面的问题:
    使用函数

    函数的作用
    1.让界面简洁(同样的功能对应的代码只写一遍)
    2.如果功能发生改变,使用函数只需要修改一个地方的代码
    3.让代码模块化

        # 汽车向左转
        print('看后视镜')
        print('踩油门')
        print('打转向灯')
        print('向左打方向盘')
        print('回正方向盘')
        # 汽车向右移
        print('看后视镜')
        print('踩油门')
        print('打转向灯')
        print('向右打方向盘')
        print('回正方向盘')
    

    2.函数的声明(定义实现)

    a.格式:
    def 函数名(参数列表):
    说明文字
    函数体

    解析:
    def:是Python中声明函数的关键字
    函数名:一种标识符,要求PEP8,见名知意(根据函数名大概知道函数的功能)
    ():固定格式,不能省略
    参数列表(形参):
    1.参数:参数的作用就是从外面往函数中传值的
    2.参数列表:一个函数可以没有参数,也可以有一个或多个参数(实质是变量名,如果有多个参数,参数间用逗号隔开)
    冒号:是固定格式
    说明文字:对函数功能进行说明
    函数体:就是实现函数功能的代码段(函数的核心)
    *例子:Python的内置函数,如print(),input(),len(),max()等等
    python中的列表内置函数,如果append(),insert()等等

    b.对于初学者来说,声明函数的步骤
    1.确定函数功能(确定函数是干什么的)
    2.确定函数名(根据功能确定函数名)
    3.确定参数(确定是否有参数,确定参数有几个,看实现这个功能需不需要从外面传值进去)
    4.确定是否需要返回值(返回值:就是函数返回给调用者的数据[在Python中所有的函数都有返回值,默认是None])
    5.实现函数的功能

    注意:函数只有在调用的时候才会执行。

    练习:写一个函数,打印'hello python'

        def say_hi(x):
            ''' 打印x中的内容 '''
            print(x)
    
        say_hi('hello python')
        #  或者
        def hello():
            ''' 打印 “hello python” '''
            print('hello python')
        hello()
    

    3.函数的调用

    a.普通函数的调用

    调用格式:
    函数名(参数列表(实参))
    函数名:你申明的需要调用的函数(已经声明过的函数)

    函数的调用过程:就是用实参给形参赋值,并且执行函数体获取返回值。

        print(hello()) 
        re = hello()
    

    注意:
    1.一个函数声明后,可以调用多次
    2.Python中所有的函数调用表达式都有值,默认是None
    3. 一定要保证每一个形参都有值
    练习:写一个函数,去打印10的阶层

        def factorial_print(num):
            '''打印num的阶层'''
            x = 1
            product = 1
            while x <= num:
                product *= x
                x += 1 
            print(product)
    
        factorial_print(10)
    
        def factorial_10():
            '''打印10的阶层'''
            product = 1
            for x in range(1,11):
                product *= x
            print(product)
    
        factorial_10()
    

    b.带参的函数

    1)函数的声明

    声明的时候的参数列表(形参):获取从外面传递给函数内部的值
    形参在python中,实质就是变量(就是声明在函数内的变量)

    2)函数的调用

    实参:调用函数的时候给函数传的值

    例子:写一个函数,打印两个数的和

        def my_sum(num1,num2):
            '''打印num1和num2的和'''
            print(num1+num2)
    

    a)位置参数(用实参依次给形参赋值)

        my_sum(20,10) #执行这句代码:现将num1 = 10,num2 = 20,再执行my-sum的函数体
        # my_sum(30) #TypeError 注意:函数调用的时候一定要保证每个形参都有值
    

    b)关键字参数

        my_sum(num2=10,num1=5)
    

    练习:写一个函数,打印一个数的立方

        def cubic(x):
            '''打印一个数的立方'''
            print(x**3)
        cubic(10)
        cubic(x=10) 
    

    3)参数的默认值

    在Python中,函数的参数可以设置默认值。
    如果参数设置了默认值,那么调用函数的时候,这个参数可以传参,也可以不参。

    在声明的时候就可以直接给参数赋值,这时赋的值就是默认值,有默认值的函数可以不传参,但函数结果就与默认值相关。
    注意:函数调用的要求是要保证每个参数有值
    例子:写一个函数,问候某人(打印:XXX,how are you?)

        def say_hi(name='XXX'):
            '''问候'''
            print('%s,how are you'%(name))
    

    例子:问好
    注意:如果声明函数的时候,函数中有多个参数,有默认值的参数必须放到没有默认值的参数的后面。
    因为函数参数位置传参的时候默认从前往后传,这样可以省参数

        def say_yeah(message,name = 'xxx'):
            '''问候'''
            print('%s,%s'%(name,message))
    
        say_yeah('aa')
        say_yeah('你吃了吗','李四')
        say_yeah(name='小花',message='我爱你')
        say_yeah(message='再见')
        say_yeah('你好')
    

    4)参数个数不定情况

    参数个数不确定的时候,就在参数列表中声明一个变量,前面加一个*;
    这个时候变量就变成了元组。函数调用的时候,所有的实参都会作为元组的元素。
    例子:写一个函数,求多个数的和

        def my_sum2(*nums):
            print(nums)
    
        my_sum2(10,2,30) #注意:变成元组,就要用元组的方式来做
    
        def my_sum3(*nums):# 注意:在一个文件里函数名是不能重复使用的。
            sum1 = 0
            for item in nums:
                sum1 += item
            print(sum1)
    
        my_sum3(10,2,30)
        my_sum3(1,2)
        my_sum3(1,2,3,4,5,6)

    相关文章

      网友评论

          本文标题:Python学习总结【连载】(七)

          本文链接:https://www.haomeiwen.com/subject/xglcyftx.html