python基础-3(需要再整理)

python函数值传递和引用传递

形参和实参

形参:在定义函数时,函数名后面的参数就是形参。

实参:在调用函数时,函数名后面的参数就是实参,也是函数调用者给函数的参数。

python的参数传递

可变类型:列表,字典。将真正的a传递过去,函数内的修改会影响到a本身

不可变类型:整数,字符串,元组。传递给a的值,不会影响到a本身


Python函数中的参数用法
调用函数时常用的参数使用类型:

  • 位置参数(必选参数)
  • 默认参数(可选参数)
  • 命名参数(关键字参数)
  • 可变参数

1.位置参数
函数调用时,实参默认按位置顺序进行传递,并且要求个数和形参完全匹配


2、默认参数
调用函数时,默认参数的值如果没有传入,则被认为是默认值。

如图所示,给参数c传入一个默认值,调用函数c可以传值或者使用默认值


3、命名参数
使用关键字参数允许函数调用时参数的顺序与声明时不-致,通过参数名进行匹配。

如图所示,将参数名称直接写出来不按照顺序传参也可以


4、可变参数
你可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数或可变参数。

 如图所示,*c是一个元组可变参数,可以接收可变个数的参数

 如图所示,**c是一个字典可变参数,可以通过key-value的形式传递参数


Python return函数返回值详解
Python中,用def语句创建函数时,可以用return 语句指定应该返回的值,该返回值可以是任意类型。需要注意的是,return 语句在同- -函数中可以出现多次,但只要有一个得到执行,就会直接结束函数的执行。

函数中,使用return语句的语法格式如下: return [返回值],其中,返回值参数可以指定,也可以省略不写(将返回空值None)。


Python变量作用域(全局变量和局部变量)
所谓作用域(Scope), 就是变量的有效范围, 即变量可以在哪个范围以内使用。有些变量可以在整段代码的任意
位置使用,有些变量只能在函数内部使用,有些变量只能在for循环内部使用。
变量的作用域由变量的定义位置决定,在不同位置定义的变量,它的作用域是不一样的。

1、Python局部变量
在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能使用了,我们将这样的变量称为局部变量(Local Variable)。

 2、Python全局变量
除了在函数内部定义变量,Python 还允许在所有函数的外部定义变量,这样的变最称为全局变最(Global Variable)。
和局部变量不同,全局变量的默认作用域是整个程序,即全局变量既可以在各个函数的外部使用,也可以在各函数内部使用。


 


Python lambda表达式(匿名函数)及用法
在定义函数的时候,不想给函数起一个名字, 这个时候就可以用lambda来定义- -个匿名函数,lambda 表达式,又称匿名函数。
语法:变量名= lambda参数:表达式
参数:可选,通常以逗号分隔的变量表达式形式,也就是位置参数
表达式:不能包含循环、return, 可以包含f.e...
可以理解lambda表达式,就是简单函数(函数体仅是单行的表达式)的简写版本。相比函数,lamba 表达式具有以下2个优点:
对于单行函数,使用lambda表达式可以省去定义函数的过程,让代码更加简洁;
对于不需要多次复用的函数,使用lambda表达式可以在用完之后立即释放,提高程序执行的性能。


 

 

 


 Python编程:递归函数
在Python中,-个函数可以调用其他函数。函数甚至也可以调用自身,这类函数称为递归函数(RecursiveFunction)。

如果一个函数直接或者间接地调用函数本身,那么就是递归函数。这意味着,函数将不断的调用本身并重复函数的内容,直到达到某个条件才返回一个结果。 所有的递归函数都有着同样的结构,这个结构由两部分组成:基础部分,递归部分。

 

 

 


 Python函数式编程
函数式编程将一个问题分解成一系列函数, 通过把大段代码拆成函数,通过- -层- -层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。
函数式编程还具有一个特点: 允许把函数本身作为参数传入另-个函数,还允许返回-个函数。
高阶函数
函数对象也可以作为参数传递给函数,还可以作为函数的返回值。参数为函数对象的函数或返回函数对象的函数称为高阶函数,即函数的函数。

 Python函数式编程: map()
1、Python map()函数
map0函数的基本语法格式: map(function, iterable)
其中,function参数表示要传入一个函数,可以是内置函数、自定义函数或者lambda匿名函数: iterable 表示一个或多个可迭代对象,可以是列表、字符串等。
map()函数的功能是对可迭代对象中的每个元素,都调用指定的函数,并返回-一个map对象,不是list。

如图,map传入两个参数,匿名函数和列表,实现将列表的每一个值*2

将每个元素变成大写

 

 

 Python函数式编程: filter()
2、Python filter()函数
filter()函数的基本语法格式: filter(function, iterable)
funcition参数表示要传入一个函数,iterable 表示-个可迭代对象。
filter()函数的功能是对iterable中的每个元素,都使用function函数判断,并返回True或者False,最后将返回True的元素组成一个新的可遍历的集合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值