Python之路(六)---> 函数、变量
Python中的函数和数学上的函数定义是不一样的,从数学的角度上来说函数的定义:给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用y=f(x)表示。我们把这个关系式就叫函数关系式,简称函数。函数概念含有三个要素:定义域A、值域C和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。
Python中的函数是以def关键字开头,后面接函数标识符和圆括号(),任何传入参数和自变量必须放在圆括号中间,圆括号之间也可以用于定义参数。函数的第一行可以选择性地添加注释,函数内容以冒号起始,并且缩进。return[表达式]结束函数,选择性的返回一个值给调用方,若没有return相当于返回None。
Python定义函数使用def关键字,一般格式如下:
#函数的格式: #def 函数名(参数列表): # 函数体
默认情况下,参数值和参数名称是按函数声明中定义的顺序来匹配的。当然我们也可指定。例:
#不指定时 def test(x,y,z): print(x) print(y) print(z) test(1,2,3) #执行结果:x=1,y=2,z=3 #指定时 def test(x,y,z): print(x) print(y) print(z) test(y=1,x=3,z=4) #执行结果:y=1,x=3,z=4
变量分为全局变量和局部变量。定义在函数内部的变量拥有一个局部作用域,这个变量我们成为局部变量;定义在函数外的拥有全局作用域,这个变量我们称为全局变量。例:
total = 0 def sum(num1, num2): total = num1 + num2 print("局部变量 : ", total) return total sum(10, 20) print("全局变量 : ", total) #执行结果:局部变量 : 30 # 全局变量 : 0
当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了。
global:修改全局变量,例:
NAME = "alex"
def test():
global NAME
print(NAME)
NAME = "root"
print(NAME)
test()
print(NAME)
#执行结果:
#alex
#root
#root
nonlocal:修改上一级变量,例:
name = "ton" def test(): name = "jock" def one1(): nonlocal name name = "root" one1() print(name) print(name) test() #执行结果: #ton #root