大连企业制作网站,什么 电子商务网站建设与管,男女做暖暖不要钱的试看网站,外贸淘宝网站建设一、函数的定义
Python使用保留字def定义一个函数#xff0c;形式如下#xff1a;
def 函数名#xff08;参数列表#xff09;#xff1a; 函数体 return 返回值
函数的调用过程与C语言类似。
关于一中特殊的函数——匿名函数…一、函数的定义
Python使用保留字def定义一个函数形式如下
def 函数名参数列表 函数体 return 返回值
函数的调用过程与C语言类似。
关于一中特殊的函数——匿名函数使用lambda
匿名函数是将函数名作为函数结果返回语法格式如下
函数名lambda参数列表
等价于下面的形式
def 函数名(参数列表) return 表达式
通俗来讲lambda适用于简单、能够用一行表示完的函数具体实例如下
flambda x,y : x*y
type(f)
f(3,5)
22
二、函数的参数传递
一、可选参数和可变数量参数
1.可选参数
有些函数在定义时它的参数存在一个默认值因此在调用时可以传入参数也可以不传入参数不传入参数时使用它的默认值作为它的值实例如下
def funca,b3: print(a*b)
func(5)
15
func(5,4)
20
可见第一次调用时没有传入第二个参数因此参数b默认为3,3*515
第二次调用传入了b为4,4*520
2.可变数量参数
通过在参数前加星号*来实现且带星号的参数只能放在参数列表的最后。
在调用时这些0到多个参数作为元组被传入函数实例如下
def func(a,*b): for n in b: an return a
func(1,2,3,4,5)
15
在这个例子中输入的参数为12,3,4,5其中a为数字1b为元组2,3,4,5元组可理解为一组元素
3.参数的位置和名称传递
一般按照参数的位置传递即函数定义中形参的位置和传入参数位置一一对应例如函数定义为
def funa,b,c,d中调用函数时fun1,3,5,6,表示传入的参数a1,b3,c5,d6,
如果参数很多这种方式的可读性就会变差因此出现了第二种方式按照形参名称输入参数这种方式参数之间的顺序可以随意调整仍以def funa,b,c,d为例其调用方式可以变成
funb3,c5,a1,d6)达到相同的效果。
4.函数可以没有return没有return时没有返回值return也可以返回多个值使用元组保存。
5.在函数中定义的变量称为局部变量仅在函数内部存在函数结束后局部变量将不存在。
全局变量是在函数外定义的变量一般没有缩进在程序执行过程中全过程有效。
在函数中对于简单类型的变量如果不使用关键字global来声明一个全局变量那么在函数中即使使用了与函数外一个全局变量名称相同的变量也不会对全局变量造成影响。
而对于列表等类型的组合数据类型的全局变量如果函数内部没有真实的创建同名变量则该函数可以直接使用并修改全局变量的值如果函数内部真实创建了一个同名变量则对该变量的操作不会影响到全局变量。
三、函数的递归
函数调用自己本身的方式称为递归最简单的递归实例就是计算一个数的阶乘。
该实例代码如下(计算n的阶乘)
def fact(n)if n 0:return 1else:return n*fact(n-1) 这个函数中很容易看出在第五行它对自身的调用也是递归中比较容易理解的一个实例。
递归的两个关键特征1是存在一个或多个基例基例是确定的表达式不需要再次递归2是所有递归链都以基例结尾。 四、Python的68个内置函数
abs()id()round()exec()memoryview()all()input()set()enumerate()next()any()int()sorted()filter()object()asci()len()str()format()property()bin()list()tuple()frozenset()repr()bool()max()type()getattr()setattr()chr()min()zip()globals()slice()complex()oct()bytes()hasattr()staticmethod()dict()open()delattr()help()sum()divmod()ord()bytearray()isinstance()super()eval()pow()callable()issubclass()vars()float()print()classmethod()iter()__import()__hash()range()compile()locals()hex()reversed()dir()map()