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
posted @ 2018-10-22 17:47  谈何易i  阅读(198)  评论(0编辑  收藏  举报