lambda函数
Python的有33个保留字,其中一个是lambda,该保留字用于定义 一种特殊的函数——匿名函数,又称lambda函数。
匿名函数并非没有名字,而是将函数名作为函数结果返回,如下:
<函数名> = lambda <参数列表>:<表达式>
lambda函数与正常函数一样,等价于下面形式:
def <函数名> (<参数列表>):
return <表达式>
可选参数和可变数量参数
在定义函数时,有些参数可以存在默认值
在函数定义时,可以设计可变数量参数,通过参数前增加 星号(*)实现(可以实现接收多个参数,tuple是元组类型)
参数的位置和名称传递
Python提供了按照形参名称输入实参的方式,调用如下:
result = func(x2=4, y2=5, z2=6, x1=1, y1=2, z1=3) 由于调用函数时指定了参数名称,所以参数之间的顺序可以任意调整。
注:
函数调用时输入的参数会覆盖,在定义函数时形参所赋给的值
变量的返回值
• return语句用来退出函数并将程序返回到函数被调用的位置继续执行。
• return语句同时可以将0个、1个或多个函数运算完的结果 返回给函数被调用处的变量,例如:
函数可以没有return,此时函数并不返回值,如微实例 5.1的happy()函数。函数也可以用return返回多个值,多 个值以元组类型保存,例如:
函数对变量的作用
一个程序中的变量包括两类:全局变量和局部变量。
•全局变量指在函数之外定义的变量,一般没有缩进,在 程序执行全过程有效。
•局部变量指在函数内部使用的变量,仅在函数内部有效 ,当函数退出时变量将不存在。
当函数执行完退出后,其内部变量将被释放的例子(c是局部变量,c没有定义,无法返回):
定义全局变量n,函数func()内部使用了变量n,并且将变量参数b赋值给变量n,而全局变量n值没有改变。(在函数内部新生成了局部变量,不是全局变量)
global显示声明变量
如果希望让func()函数将n当作全局变量,需要在变量n使用global前显式声明该变量为全局变量,代码如下:
变量的返回值
Python函数对变量的作用遵守如下原则:
•简单数据类型变量无论是否与全局变量重名,仅在函数内部创 建和使用,函数退出后变量被释放;
•简单数据类型变量在用global保留字声明后,作为全局变量;
•对于组合数据类型的全局变量,如果在函数内部没有被真实创 建的同名变量,则函数内部可直接使用并修改全局变量的值;
•如果函数内部真实创建了组合数据类型变量,无论是否有同名 全局变量,函数仅对局部变量进行操作。
datetime库概述:
是一个类库,不是函数方法,与时间和日期有关
以不同格式显示日期和时间是程序中最常用到的功能。 Python提供了一个处理时间的标准函数库datetime,它提供 了一系列由简单到复杂的时间处理方法。datetime库可以从 系统中获得时间,并以用户选择的格式输出。
datetime库以类的方式提供多种日期和时间表达方式:
datetime.date:日期表示类,可以表示年、月、日等
datetime.time:时间表示类,可以表示小时、分钟、秒、毫秒等
datetime.datetime:日期和时间表示的类,功能覆盖date和time类
datetime.timedelta:时间间隔有关的类
datetime.tzinfo:与时区有关的信息表示类
注:需要导入库datetime
使用datetime.now()获得当前日期和时间对象,使用方法如下:
datetime.now() //这个是方法名,定义调用时需要在方法名前加上类名
作用:返回一个datetime类型,表示当前的日期和时 间,精确到微秒。
today = datetime.datetime.now()
print("{}".format(today))
使用datetime.utcnow()获得当前日期和时间对应的UTC (世界标准时间)时间对象,使用方法如下:
datetime.utcnow()
作用:返回datetime类型,表示当前日期和时间的UTC表示,精确到微秒。
today = datetime.datetime.utcnow()
print("{}".format(today))
可以直接使用datetime()构造一个日期和时间对象,使用方法如下:
datetime(year, month, day, hour=0, minute=0,second=0, microsecond=0)
作用:返回一个datetime类型,表示指定的日期和时间, 可以精确到微秒。
datetime库解析
datetime对象有3个常用的时间格式化方法,如表所示
isoformat()和isoweekday()方法的使用如下:
例子:
2021年10月1日是星期几(星期五):
today = datetime.datetime(2021,10,1,0,0,0,0)
print("{}\n星期{}".format(today,a))
strftime()格式化字符串的数字