函数的作用:1.可扩展,一处修改过处修改
2.减少重复代码,可复用
3.代码一致性
当一个函数/过程没有使用return显示的定义返回值,python解释器会隐式的返回None,所以在python中即便是过程也可以算作函数。
总结:返回一个值返回该值,返回多个值返回元组,无返回值返回None
代码示例:
import time
def logger_test():
time_format = '%Y-%m-%d %X'
time_current = time.strftime(time_format)
with open('a.txt', 'a+') as f:
f.write('time %s end action\n' % time_current)
def test1():
print("test1 starting action...")
logger_test()
def test2():
print("test2 starting action...")
logger_test()
def test3():
print("test3 starting action...")
logger_test()
test1()
test2()
test3()
参数:
1.形参与实参
形参:形式参数,不是实际存在的,是虚拟变量。在定义函数和函数体时使用形参,目的是在函数调用时接收实参(实参个数、类型应该与形参一一对应)
实参:实际参数,调用函数时传给函数的参数,可以是常数,变量,表达式,函数,传给参数
区别:形式参数是虚拟的,不占用内存空间,形式参数只有在被调用时才分配内存单元,实参是一个变量,占用内存空间,数据传送单向,实参传给形参,不能形参传给实参
2.位置参数
位置参数和关键字(标准调用:实参与形参位置一一对应;关键字调用:位置无需固定)
3.位置参数一定要在关键字参数之前,否则会报错。
4.默认参数
定义时函数头等号定义赋值,调用函数时非必须传递值
5.参数组
def func(*args, **kwargs)
# *args表示接收一连串的位置参数转换为元组, **kwargs表示接收一连串关键字参数转换为一个字典作为数据输入
6.局部变量与全局变量
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。