码迷,mamicode.com
首页 > 编程语言 > 详细

Python_函数基础

时间:2018-05-08 19:42:58      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:不可变   返回值   针对   变量   test   变化   列表   hand   解决   

函数基础

一、什么是函数

函数是在开发语言中根据需求,实现定制好的用来实现某种功能。之后,在遇到应用场景时可以直接调用函数。

 

二、函数的分类

函数分为两类:

                          1、内置函数:为了方便开发,针对一些简单功能,Python解释器已经为我们定义好了的函数就是内置函数。

                                对于内置函数我们可以不用实现定义就可以使用。如:len()   sum()   join()等

                          2、自定义函数: 内置函数提供的功能是有限的,所以需要我们根据自身需求来事先定义函数来实现某种功能,之后再遇到其他应用场景时可以直接调用。

三、如何自定义函数

#语法
def 函数名(参数1,参数2,参数3......)
      ‘‘‘  注释 ‘‘‘
      函数体
     return 返回值
# 函数名最好能够反映其意义
def test(x):
     ‘‘‘
     2*x+1
     :param x:整形数字
     :return: 返回计算结果
     ‘‘‘
     y=2*x+1
     return y

四、函数的返回值

什么时候该有返回值?
    调用函数,经过一系列的操作,最后要拿到一个明确的结果,则必须要有返回值
    通常有参函数需要有返回值,输入参数,经过计算,得到一个最终的结果
什么时候不需要有返回值?
    调用函数,仅仅只是执行一系列的操作,最后不需要得到什么结果,则无需有返回值
    通常无参函数不需要有返回值
无return->None
return 1个值->返回1个值
return 逗号分隔多个值->元组

五、函数的参数

参数分为形参和实参:

                                  形参:形参其实就是变量名 ,函数调用时将值帮到变量名上,函数调用结束,解除绑定。

                                  实参:实参就是变量值

具体应用: 

位置参数

位置参数:按照从左到右的顺序定义的参数
        位置形参:必选参数
        位置实参:按照位置给形参传值
补充: 位置参数必须一一对应,缺一不可。
def calc(x,y): res = x**y return(res) res = calc(2,3) #位置参数

关键字参数

关键字参数:按照key=value的形式定义的实参
        无需按照位置为形参传值
        注意的问题:
                1. 关键字实参必须在位置实参右面
                2. 对同一个形参不能重复传值
def test(x,y,z):#x=1,y=2,z=3
     print(x)
     print(y)
     print(z)

#关键字参数,无须一一对应,缺一不行多一也不行
 test(1,y=2,z=3) #关键字实参必须在位置实参右面

默认参数

默认参数:形参在定义时就已经为其赋值
        可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参)
        注意的问题:
                1. 只在定义时赋值一次
                2. 默认参数的定义应该在位置形参右面
                3. 默认参数通常应该定义成不可变类型
def handle(x,type=mysql):
     print(x)
     print(type)
 handle(hello) # 赋值给x
 handle(hello,type=sqlite) # ‘hello’赋值给x,type值覆盖成‘sqlite’

可变长参数:*列表  **字典

可变长参数:
        可变长指的是实参值的个数不固定
        而实参有按位置和按关键字两种形式定义,针对这两种形式的可变长,形参对应有两种解决方案来完整地存放它们,分别是*args,**kwargs
        def foo(x,y,*args): #列表形式存放
            print(x,y)
            print(args)
        foo(1,2,3,4,5)

        def foo(x,y,**kwargs):  #字典形式存放
            print(x,y)
            print(kwargs)
        foo(1,y=2,a=1,b=2,c=3)

 

Python_函数基础

标签:不可变   返回值   针对   变量   test   变化   列表   hand   解决   

原文地址:https://www.cnblogs.com/liutianyuan/p/9009713.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!