Python函数
函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用其函数名即可 。
特性:
减少重复代码
使程序变得可扩展
使程序变得易维护
定义函数规则:
● 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
● 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
● 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
● 函数内容以冒号起始,并且缩进。
● return [表达式] 结束函数,选择性地返回一个值给调用方。不带eturn相当于返回 None。
语法:
Python定义函数使用def关键字,格式如下:
def 函数名(参数列表):
函数体
例1:定义无参函数输出‘Hello Python’
def helloPython():
print('Hello Python')
例2:定义有参函数输出
import math
def area(radius):
return math.pi*radius**2
print(area(10))
参数:
● 必需参数:
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
def myFunc(str):
print(str)
return
myFunc()
TypeError: myFunc() missing 1 required positional argument: 'str'
● 关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致。
def area(width,height):
return width*height
print(area(height=100,width=6))
● 默认参数
调用函数时,如果没有传递参数,则会使用默认参数。
def area(width,height=666):
return width*height
print(area(width=6))
● 不定长参数
函数能处理比当初声明时更多的参数。这些参数叫做不定长参数
def fun(a, b, *args):
print(a)
print(b)
print(args)
fun(1,2,3,4,5,6,7)
def fun(a, b, *args,**kwargs):
print(a)
print(b)
print(args)
print(kwargs)
fun(1,2,3,4,5,6,7,weight=12,height=15)
def fun(a, b, *args, **kwargs):
print(a)
print(b)
print(args)
print(kwargs)
tup = (11,22,33)
dic = {"name":"python", "year":1991}
fun(1, 2, *tup, **dic)
return语句
return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。
def sum(arg1, arg2):
total = arg1 + arg2
print("函数内 : ", total)
return total
total = sum(10, 20)
print("函数外 : ", total)
匿名函数
定义:python 使用 lambda 来创建匿名函数。匿名是没有名字的函数,不用写return,返回值就是该表达式的结果。
lambda x:x*x
等同于
def func(x):
return x*x
例子:
def myFunc(x,y):
if x>y:
return x/y
else:
return y/x
myLambda = lambda x,y:x/y if x>y else y/x
print(myFunc(2,4))
print(myLambda(4,2))
变量作用域
定义
● L (Local) 局部作用域
● E (Enclosing) 闭包函数外的函数中
● G (Global) 全局作用域
● B (Built-in) 内置作用域(内置函数所在模块的范围)
规则:
以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,
再者去内置中找。
g_count = 0
def outer():
o_count = 1
def inner():
i_count = 2