定义函数
函数是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
。