
函数
函数是 重用 的程序段。它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为 调用 。
函数定义
Python中,函数通过def关键字定义。def关键字后跟一个函数的 标识符 ,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。
例子:
1 2 3 4 |
def sayHello(): print 'Hello World!' sayHello() |
输出结果显而易见:
1 |
Hello World! |
函数形参
函数取得的参数是你提供给函数的值,这样函数就可以利用这些值完成一些工作。这些参数就像变量一样,只不过它们的值是在我们调用函数的时候定义的,而非在函数本身内赋值。
参数在函数定义的圆括号对内指定,用逗号分割。当我们调用函数的时候,我们以同样的方式提供值。注意,函数中的参数名称为 形参 而你提供给函数调用的值称为 实参 。
例子,输出大值:
1 2 3 4 5 6 7 8 9 10 11 12 |
def printMax(a, b): if a > b: print a, 'is maximum' else: print b, 'is maximum' printMax(3, 4) x = 5 y = 7 printMax(x, y) |
输出结果:
1 2 |
4 is maximum 7 is maximum |
在第二个使用中,我们使用变量调用函数。printMax(x, y)使实参x的值赋给形参a,实参y的值赋给形参b。
局部变量
在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。
例子:
1 2 3 4 5 6 7 8 |
def func(x): print 'x is', x x = 2 print 'Changed local x to', x x = 50 func(x) print 'x is still', x |
输出结果:
1 2 3 |
x is 50 Changed local x to 2 x is still 50 |
如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。
你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。使用global语句可以清楚地表明变量是在外面的块定义的。
例子:
1 2 3 4 5 6 7 8 9 10 |
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 |
输出结果:
1 2 3 |
x is 50 Changed global x to 2 Value of x is 2 |
默认参数值
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的。
如:
1 2 3 4 5 |
def say(message, times = 1): print message * times say('Hello') say('World', 5) |
输出结果:
1 2 |
Hello WorldWorldWorldWorldWorld |
关键参数
如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值,这被称作 关键参数 ——我们使用名字而不是位置来给函数指定实参。
这样做有两个优势:
1、由于我们不必担心参数的顺序,使用函数变得更加简单了。
2、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。
例子:
1 2 3 4 5 6 |
def func(a, b=5, c=10): print 'a is', a, 'and b is', b, 'and c is', c func(3, 7) func(25, c=24) func(c=50, a=100) |
输出结果:
1 2 3 |
a is 3 and b is 7 and c is 10 a is 25 and b is 5 and c is 24 a is 100 and b is 5 and c is 50 |
return
return语句用来从一个函数 返回 即跳出函数。我们也可选从函数 返回一个值 。
除非你提供你自己的return语句,每个函数都在结尾暗含有return None语句。
本文链接地址: Python 入门篇 – 函数
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
如果您愿意为文章的内容或想法提供支持,欢迎点击下边的捐赠按钮,资助作者创作更多高价值高品质的内容。