函数取得的参数是你提供给函数的值,这样函数就可以利用这些值 做 一些事情。这些参数就像变量一样,只不过它们的值是在我们调用函数的时候定义的,而非在函数本身内赋值。 参数在函数定义的圆括号对内指定,用逗号分割。当我们调用函数的时候,我们以同样的方式提供值。注意我们使用过的术语——函数中的参数名称为 形参 而你提供给函数调用的值称为实参 。
例:使用形参
#! /usr/bin/python def printMax(a,b): if a > b: print a , "is maximum" else: print b , "is maximum" printMax(3,4)
结果:
spdbmadeMacBook-Pro:python spdbma$ ./test.py
4 is maximum
当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。 它如何工作 在函数中,我们第一次使用x的 值 的时候,Python使用函数声明的形参的值。 接下来,我们把值2赋给x。x是函数的局部变量。所以,当我们在函数内改变x的值的时候,在主块中定义的x不受影响。 在最后一个print语句中,我们证明了主块中的x的值确实没有受到影响。
#! /usr/bin/python def func(x): print ‘x is ‘,x x = 2 print ‘changed local x to ‘,x x = 50 func(x) print ‘x is still‘,x
结果:
spdbmadeMacBook-Pro:python spdbma$ ./test.py
x is 50
changed local x to 2
x is still 50
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
#! /usr/bin/python def say(message,times=1): print message * times say(‘hello ‘) say (‘hello ‘,5)
结果
spdbmadeMacBook-Pro:python spdbma$ ./test.py
hello
hello hello hello hello hello
解析:名为say的函数用来打印一个字符串任意所需的次数。如果我们不提供一个值,那么默认地,字符串将只被打印一遍。我们通过给形参times指定默认参数值1来实现这一功能。 在第一次使用say的时候,我们只提供一个字符串,函数只打印一次字符串。在第二次使用say的时候,我们提供了字符串和参数5,表明我们想要 说 这个字符串消息5遍。
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
#! /usr/bin/python def func(a, b=5, c=10): print ‘a is ‘,a, ‘ and b is ‘,b, ‘ and c is ‘,c func (3,7) func (3,7,9) func (25,c = 24) func (c =50,a = 100)
结果:
spdbmadeMacBook-Pro:python spdbma$ ./test.py
a is 3 and b is 7 and c is 10
a is 3 and b is 7 and c is 9
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50
解析:名为func的函数用来打印一个字符串任意所需的次数。如果我们不提供一个值,那么默认地,字符串将只被打印一遍。我们通过给形参times指定默认参数值1来实现这一功能。 在第一次使用say的时候,我们只提供一个字符串,函数只打印一次字符串。在第二次使用say的时候,我们提供了字符串和参数5,表明我们想要 说 这个字符串消息5遍。
return语句用来从一个函数 返回 即跳出函数。我们也可选从函数 返回一个值 。
#! /usr/bin/python def maximum(x , y): if x > y: return x else: return y print maximum(2,3)
结果:
spdbmadeMacBook-Pro:python spdbma$ ./test.py
3
解析:maximum函数返回参数中的最大值,在这里是提供给函数的数。它使用简单的if..else语句来找出较大的值,然后 返回 那个值。
[待更新...]
原文:http://www.cnblogs.com/tdcqma/p/5266790.html