函数的返回值,形象的说是函数结的“果实”;有返回值的函数,称 之为“结果”的函数。例如我们要计算圆的面积:
>>> import math
>>> def area(radius):
atemp = math.pi * radius * 2
return atemp
“return atemp”语句的意思是:将atemp表达式的值立即返回,表达式可 以是任意复杂的,所以这个函数还可以进一步简化成如下的形式:
>>> import math
>>> def area(radius):
return math.pi * radius * 2
有时根据不同的条件,函数能够有多个返回语句:
def exampass(x):
if (x>=60):
return 1
else:
return 0
这些return语句处于不同的条件语句中,并且只可能有一个return语句被执 行,之后函数就终止了。在有返回值的函数中,一定要保证每个可能的流 程都对应着return语句,请看下面的例子:
def abs(x):
if x<0:
return -x
elif x>0:
return x
此函数缺少了一条对应x=0的return语句,这种情况下,函数返回值是None(注 意N要大写):
>>> print abs(0)
None
None是什么类型呢?可以用函数type检验一下:
>>> type(None)
<type ’NoneType’>
>>> int("34")
34
>>> int("1234ab") #不能转换成整数
ValueError: invalid literal for int(): 1234ab
函数int也能够把浮点数转换成整数,但浮点数的小数部分被截去。
>>> int(34.1234)
34
>>> int(-2.46)
-2
函数float将整数和字符串转换成浮点数:
>>> float("12")
12.0
>>> float("1.111111")
1.111111
函数str将数字转换成字符:
>>> str(98)
’98’
>>> str("76.765")
’76.765’
整数1和浮点数1.0在python中是不同的。虽然它们的值相等的,但却 属于不同的类型。这两个数在计算机的存储形式也是不一样。
Python有一个math模块,提供了大部分与数学计算相似的函数。模块 是一个文件,它是功能类似的函数的集合。
如果我们想利用math模块中的函数,首先要用关键字import引入模块:
>>> import math
然后用点操作符调用模块中的函数:
>>> import math
>>> print math.log10(10)
1.0
>>> print math.sin(1.5)
0.997494986604
如果你不想用点操作符,而直接写出math模块中的函数,需要用下面 的语句重新输入math中的函数:
>>> from math import *
>>> cos(3)
-0.98999249660044542
如果你定义的函数中有与cos同名的,math模块中cos函数将被覆盖,即使 用点操作符也不能调用math中的cos函数。
在数学模块math中,有两个数学常量:pi和e。
>>> print math.pi
3.14159265359
>>> print math.e
2.71828182846
再看几个数学函数的例子:
>>> math.exp(9) #e的9次幂。
8103.0839275753842
>>> math.pow(3,4) #3的4次幂。
81.0
>>> math.sqrt(3.44) #3.44开平方。
1.8547236990991407
>>> math.sin(math.pi/2) #正弦函数。
1.0
>>> math.cos(math.pi * 3.4) #余弦函数。
0.30901699437494784
>>> math.fabs(-34.90) #求绝对值。
34.899999999999999
Python允许你定义一种单行的小函数。定义lambda函数的形式如下:
labmda 参数:表达式
lambda函数默认返回表达式的值。你也可以将其赋值给一个变量。
lambda函数可以接受任意个参数,包括可选参数,但是表达式只有一 个:
>>> g = lambda x, y: x*y
>>> g(3,4)
12
>>> g = lambda x, y=0, z=0: x+y+z
>>> g(1)
1
>>> g(3, 4, 7)
14
也能够直接使用lambda函数,不把它赋值给变量:
>>> (lambda x,y=0,z=0:x+y+z)(3,5,6)
14
如果你的函数非常简单,只有一个表达式,不包含命令,可以考 虑lambda函数。否则,你还是定义函数才对,毕竟函数没有这么多限制。
上一篇:《Python学习笔记》第三章
下一篇:《Python学习笔记》第四章