Python语言程序设计基础
第5章 函数和代码复用
函数的基本使用
函数的定义
函数是一段具有特定功能的、可重用的语句组,用函数名表示并通过函数名进行功能调用。
使用函数主要有两个目的:降低编程难度和代码重用。
Python使用def定义一个函数,语法形式:
def ():
return
函数调用和执行的一般形式
()
lambda函数
lambda用于定义一种特殊的函数——匿名函数,又称为lambda函数。匿名函数并非没有名字,而是将函数名作为函数结果返回,语法格式如下
= lambda :
lambda 函数与正常函数一样,等价于如下形式:
def ():
return
f = lambda x,y : x+y
print(type(f))
print(f(10,20))
函数的参数传递
可选参数与可变数量参数
可以定义函数时直接为这些参数指定默认值,当函数被调用时,如果没有传入对应的参数值,则使用函数定义时的默认值代替。由于函数调用时需要按顺序输入参数,可选参数必须定义在非可选参数的后面。
def dup (str , times = 2):
print(str * times)
dup("konck~")
在函数定义时,也可以设计可变数量参数,通过在参数前增加星号(*)实现。带有星号的可变参数只能出现在参数列表的后面。调用时,这些参数被当做元组类型传递到参数中,实例如下:
def vfunc(a, *b ):
print(type(b))
for n in b:
print(n,end='')
a += n
return a
vfunc(1,2,3,4,5,6)
参数的位置和名称传递
函数调用时,实参默认采用按着位置的顺序的方式传递给函数
Python还提供了按着形参名称传入实参的方式,由于调用函数时指定了参数名称,所以参数之间的顺序可以任意调整。
函数的返回值
return语句用来退出函数并将函数返回到函数被调用的位置继续执行。函数可以没有return,此时函数不返回值。函数也可以用return返回多个值,多个值以元组类型保存。
def func(a,b):
return b,a
a = func("knock~",2)
print(a,type(a))
函数对变量的改变
全局变量是指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效。
局部变量是指在函数内部使用的变量,仅在函数内部使用变量,仅在函数内部有效,当函数退出时变量将不存在。
简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放,如有全局变量,其值不变。
简单数据类型变量在用global保留字声明后,作为全局变量使用,函数退出后该变量保留且值被函数改变。
对于组合数据类型的全局变量,如果在函数内部没有被真实创建的同名变量,则函数内部可以直接使用并修改全局变量的值。
如果函数内部真实创建了组合数据类型变量,无论是否有同名全局变量,函数仅对局部变量进行操作,函数退出后局部变量被释放,全局变量值不变。
模块3 :datetime库的使用
datetime库概述
datetime库可以从系统中获得时间,并以用户选择的格式输出。
datetime库以格林威治时间为基,每天由3600*24秒精确定义。该库包括两个常量:datetime.MINYEAR和datetime.MXYEAR,分别表示datetime所能代表的最小,最大年份,值分别为1与9999。
datetime.datetime类表达形式最为丰富。引入datetime类的方式如下:
from datetime import datetime
datetime类的使用
datetime类的使用是首先创建一个datetime对象,然后通过对象的方法和属性显示时间。
创建datetime对象有三种方法:datetime.now(),dtetime.utcnow(),datetime.datetime()
datetime.now() ,返回一个datetime类型,表示当前日期和时间,精确到微秒
from datetime import datetime
today = datetime.now()
today
datetime.utcnow(),返回一个datetime类型,表示当前日期和时间的UTC表示,精确到微秒
today = datetime.utcnow()
today
datetime(year,month,day,hour=0,minute=0,second=0,microsecond=0)构造一个日期和时间对象
someday = datetime(2017,9,1,10,30,34,2)
someday
datetime类对象的常见属性 9个
属性
描述
datetime.min
datetime.max
datetime.year
datetime.month
datetime.day
datetime.hour
datetime.minute
datetime.second
datetime.microsecond
date类常用的时间格式化方法 3 个
属性
描述
datetime.isoformat()
ISO 8601 标准显示时间
datetime.isoweekday()
根据日期计算星期后返回1~7对应星期一到星期日
datetime.strftime()
根据格式化字符串format进行格式显示的方法
strtime()方法是时间格式化最有效的方法,几乎可以以任何通用格式输出时间
strftime()方法的格式控制符
格式化字符串
日期/时间
值范围和实例
%Y
年份
%m
月份
%B
月名
%b
月名缩写
%d
日期
%A
星期
%a
星期缩写
%H
小时(12)
%I
小时(24)
%p
上/下午
%M
分钟
%S
秒
思考与练习
请利用datetime库将当前系统时间转换为字符串
from date