python的函数举例

  函数是个重要的程序段 他们允许你给一块语句一个名称,然后你可以在程序的任何地方任意多次使用语句块。比如一些内建函数 len和range之类。

函数通过def关键字定义。


定义函数

# filename : fun1.py

def sayHello():
	print 'hello python'
	
	
sayHello()

函数形参的使用

# filename: fun_param.py

def printMax(a,b):
	if a>b:
		print a,'is max'
	else:
		print b,'is max'
		
printMax(3,4) 
x = 5
y = 7
printMax(x,y)

	
#输出

$ python fun_param.py
4 is max
7 is max

局部变量

# filename: fun_local.py

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

	
#输出

$ python fun_local.py
x is 50 
changed local x to 2
x is still 50

使用global语句

如果你想为一个定义在函数外的变量赋值 就可以使用global完成这一功能

值得注意的是 可以使用定义在函数外的变量的值(假设在函数内设有同样的变量)。然而,我并不赞成这样做,并且最好避免,这样会使你的程序不清晰 这个变量到底在哪里定义的。使用global语句可以清晰的表明变量在外面定义的。

# filename: fun_global.py

def func():
	global x
	print 'x is', x
	x = 2
	print 'changed local x to', x
x = 50
fun(x)
print 'value of x is', x

	
#输出

$ python fun_global.py
x is 50 
changed global x to 2
value of x is 2

默认参数值

对于一些函数,可以选择参数是可选的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。也已在函数定义的形参名后面加上赋值运算符(=)和默认值,从而给形参指定默认值。

有人还告诉我 默认参数值应该是不可变的。


# filename: fun_default.py

def say(message, times = 1):
	print message * times
say('hello')
say('world', 5)

	
#输出

$ python fun_default.py
hello
worldworldworldworldworld

 此外,只有在形参末尾的那些参数可以有默认参数值,即不能再声明函数形参时,先声明有默认值的形参而后声明没有默认值的形参。打个比方,def func(a,b =5)是有效的,而def func(a=5,b)是无效的。


关键参数

对于众多函数参数,只想指定某一部分,那么可以通过命名来为它们赋值,python中起了个奇怪的名称 叫做关键参数。我们使用名字(关键字)而不是之间的方法指定参数。

从度娘那得知这样做有两个优势, 1由于不必担心参数的顺序,使用函数变得更家简单。2 假定其他参数都有默认值,就可以只给只给想要的参数赋值 。


使用关键参数

# filename: fun_key.py

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)

	
#输出

$ python fun_key.py
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语句

# filename: fun_return.py

def max(x,y):
	if x > y:
		return x
	else:
		return y
	print max(2,3)

	
#输出

$ python fun_return.py
3<span style="color:#cc0000;">
</span>

DocStrings

见名知意 ‘文档字符串’  它是python中一个很重要的特性,简称docstring。它使你的程序文档更加简单易懂,多用是有好处,更可以,在程序运行时,从函数回复文档字符串。

# filename: fun_doc.py

def printMax(x,y):
	'''prints hte maximum of 2 numbers 
	the two values must be integers.'''
	x = int(x)
	
	if x>y:
		print x,'is max'
	else:
		print y,'is max'
		
printMax(3,5)
print printMax._doc_

	
#输出

$ python fun_doc.py
5 is max
prints hte maximum of 2 numbers 
	the two values must be integers.











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值