python基础之return,参数

函数的返回值

1.什么是返回值:

         返回值是一个函数的处理结果

2.为什么要有返回值

         如果需要在程序中拿到函数的处理结果,做进一步的处理,则需要函数必须有返回值

3.函数返回值的应用:

         函数的返回值用return定义

         格式: return x

  注意:1.return是一个函数结束的标志,可有多个return,但只要执行一次,函数就会结束运行

             2.return的返回值五类型限制,可任意数据类型

             3.返回值无个数限制,可用逗号分开多个任意类型的返回值

                          0个:返回None            1个:返回值就是值本身

                          多个:返回值为元组

             4.不写return,默认会在最后return None

 

调用函数

1.什么是调用函数

         函数名()  即调用,会执行函数体代码

2.为何要调用?

         执行函数的功能

3.函数调用的三种形式

         def count(x):

                  return x

         1.普通:count(x)

         2.放在运算中:count(x) * 10

         3.作为参数调用:count(count(x))

 

函数参数的应用:

         形参:在函数定义阶段括号内定义的参数,称为形参,本质是变量名

         实参:在函数调用阶段括号内传入的值,称为实参,本质是变量的值

详细分类:

         1.位置形参:在函数定义阶段,按从左到右的顺序依次定义的参数

                  特点:必须被传值,不可多,不可少

          位置实参:在函数调用阶段,按从左到右的顺序依次定义的参数

                  特点:按照位置为对应的形参依次传值

         2.关键字实参:按key:value传值,称关键字实参

                  特点:可以打破位置的限制,但仍能为指定的形参赋值

                  注意:1.可以混用位置参数与关键字实参,但位置实参必须在前面

                            2.可以混用,但不能对一个形参重复赋值

         3.默认参数:在函数定义阶段,就已经为形参赋值

                  特点:在定义阶段已被赋值,意味着在调用时可以不为其赋值

                  def foo(x, y = 10):    y=10就是默认参数

                          pass

                  注意:1.位置形参必须放在默认参数前面

                            2.默认参数的值只在定义阶段赋值一次,即定义时就固定写死了

                            3.默认参数的值通常应该定义不可变类型

         总结:实参的应用:可取决于个人的习惯

                    形参的应用:大多数情况下调用值都一样:默认参数

                                            大多数情况下调用值不一样:位置参数

         4.可变长参数:指的是在函数调用时:传入的参数个数可以不固定,而调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键实参,所以对应着形参也必须有两种解决方案来分别接收溢出的位置实参(*)与关键字实参(**)

                  位置参数(*)

           ①.形参中*接收溢出的位置实数,然后存成元组的形式,赋值给*后的变量

           ②.实参中的参数也可以带*:       

                  实参中带*,*会将该参数的值循环取出,打散成位置参数,但凡带*实参,它就是位置实参,应该打散成位置实参看

               约定俗成:形参中的*变量名的写法都是*args

                  关键字参数(**)

           ①.形参中的**会将溢出的关键字实参全部接收,然后存成字典的形式,赋值给**后的变量名

           ②.实参中带**,**会将该参数的值循环取出,打散成关键字实数,但凡带**的实参, 它就是关键字实参,应该打散成位关键字参看。**后必须是字典

             约定俗成:形参中的*变量名的写法都是**kwargs

  

应用:
	def info(name,age,sex)
	  print(name)
	  print(age)
	  print(sex)
	def wrapper(*args,**kwargs):
	  info(*args,**kwargs)
	wrapper(‘egon’,18,’male,)
	这样使用(*args,**kwargs)作为参数时,可以原封不动的把外部调用时的参数原封不动地	传给内部参数

  

         

posted @ 2018-06-06 14:48  luck_L  阅读(900)  评论(0编辑  收藏  举报