学习python的第二十九天-函数,变量,global语句

来源:互联网 发布:使徒行者2 知乎 编辑:程序博客网 时间:2024/06/06 09:00

定义函数

函数是python中比较重要的程序段。函数通过def关键字定义,def后跟一个函数的标识符名称,然后跟一对圆括号。圆括号中可以包括一些变量名。定义函数完成后以冒号结尾。

def sayHello():    print 'Hello World!' # block belonging to the function sayHello() # call the function 

这段代码很好的展示了定义函数并调用的过程,按要求定义好函数后,在下方输入函数名加圆括号调用。

函数形参

函数取得的参数是你提供给函数的值,参数就像变量一样,它们的值是在我们调用函数的时候定义的,非函数本身内赋值。注意:函数中的参数名称为形参,你提供给函数调用的值称为实参。

def printMax(a, b):    if a > b:        print a, 'is maximum'        else:               print b, 'is maximum' printMax(3, 4) # directly give literal values x = 5 y = 7 printMax(x, y) # give variables as arguments 

在第一个printMax使用中,我们直接把数,即实参,提供给函数。在第二个使用中,我们使用变量调用函数。printMax(x, y)使实参x的值赋给形参a,实参y的值赋给形参b。在两次调用中,printMax函数的工作完全相同。

局部变量

代码部分:

def func(x):    print 'x is', x    x = 2        print 'Changed local x to', x x = 50 func(x) print 'x is still', x 

运行结果:

x is 50 Changed local x to 2 x is still 50 

x等于50,然后调用func(x)函数,打印x等于50,接下来x等于2,打印Changed local x to 2,函数运行完成以后,下一步打印x is still 50。因为x等于2是局部变量,所以在运行函数以后x的值仍然是50.

global语句

如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是全局的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。

你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。

def func():    global x    print 'x is', x        x = 2        print 'Changed local x to', x x = 50 func() print 'Value of x is', x 

运行结果:

x is 50 Changed global x to 2 Value of x is 2 

很显然,在这段代码中,先给x赋值为50,然后调用函数,global函数定义变量x,先打印x is 50,然后给全局变量x赋值为2,所以在下一句代码打印Changed global x to 2,函数运行完成以后x已经为2,所以打印Value of x is 2

global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。 你可以使用同一个global语句指定多个全局变量。例如global x, y, z

0 0
原创粉丝点击