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

定义函数

函数是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

发布了72 篇原创文章 · 获赞 42 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/A_lPha/article/details/53504174