一、函数定义用途
函数是逻辑化和结构化的一种编程方法,它将一组语句用函数名包裹起来,通过调用函数名来执行函数里的具体语句。
1.减少重复代码
2.使程序变得容易扩展
-
#!/usr/bin/env python
-
# -*- UTF-8 -*-
-
# Author:Jerry
-
-
import time
-
-
def logger():
-
time_format="%Y-%m-%d %X"
-
time_current=time.strftime(time_format)
-
with open("writefile","a+",encoding="utf-8") as f:
-
f.write("%s Start write logfile:\n" %time_current)
-
-
def test1():
-
print("Test 1 file")
-
logger()
-
def test2():
-
print("Test 2 file")
-
logger()
-
-
test1()
- test2()
1.基本定义语法
def function_name(x,y):
"""function descriptioni"""
function_body
return x
函数定义包含:定义关键字def ,函数名function_name,函数参数x,y,函数描述,函数体,以及函数返回值
三、函数示例
1.无参数的函数
##function_01是定义的函数,返回值是0
##function_02是定义的过程,无返回值(或者说返回值是none)
-
#!/usr/bin/env python
-
# -*- UTF-8 -*-
-
# Author:ChengZhen
-
-
def function_01():
-
"测试函数01"
-
print("测试函数01")
-
return 0
-
-
def function_02():
-
"测试函数02"
-
print("测试函数02")
-
-
x=function_01() y=function_02() -
print(x)
-
print(y) -
-
#位置参数,形参和实参一一对应
-
def test1(x,y):
-
print("Test 1 file:%s %s" %(x,y))
-
test1(1,2)
-
-
#关键字参数,关键字参数一定要放在位置参数后面
-
def test2(x,y):
-
print("Test 2 file:%s %s" %(x,y))
-
test2(3,y=2)
-
-
#默认参数,如果有传入实参则按照实际传入参数赋值,如果没有传入实参,则按默认参数值传入
-
def test2(x,y=5):
-
print("Test 2 file:%s %s" %(x,y))
- test2(3,2)
-
#通过*args定义一个形参变量组,其可接收多个位置参数值,其中args变量名可以任意名,以一个元组形式输出
-
def test1(*args):
-
print(args)
-
test1(1,2,"abc")
-
-
#通过**kwargs定义一个形参变量组,其可接收多个关键字参数值,其中args变量名可以任意名,以一个字典形式输出
-
-
def test2(**kwargs):
-
print(kwargs)
- test2(x=1,y=2,name="abc")
(1, 2, 'abc')
{'x': 1, 'y': 2, 'name': 'abc'}
##全局变量和局部变量,其中局部变量如果是字典、列表是可以从局部修改影响全局变量值,而字符串、数字的局部变量不会影响全局变量结果。