Python 本身内置很多函数,可以直接调用。官方网站有函数的详细信息,大家可以访问
http://docs.python.org/2/library/functions.html
也可以通过函数 help() 来查看函数信息。
例如,abs() 求绝对值,int() 将输入转为整数类型,str() 将输入转为字符串类型,cmp(x, y) 比较x 和 y 的大小:若 x>y, 输出为 1,若 x<y,输出为 -1,相等为 0。
函数的编写
函数编写很简单,不需要多讲,只是要注意 Python 的数学格式
def square_of_sum(L):
s = 0
for i in L:
s = i*i + s
return s
注意 def ... 后面的 :号。
当然,函数是可以返回多值的。
ax² + bx + c = 0 解方程:
import math
def quadratic_equation(a, b, c):
X1 = (-b + math.sqrt(-4*a*c + b*b))/(2*a)
X2 = (-b - math.sqrt(-4*a*c + b*b))/(2*a)
return X1,X2
递归函数
如果一个函数在内部调用自身本身,这个函数就是递归函数。
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
参数的定义方法
1. 定义默认参数
先看一段程序,计算序列 L 元素的 n 次方平均数:
def power_sum(L,n):
sum = 0
for x in L:
sum = sum + x**n
return sum/len(L)
print power_sum(range(1,6),3)
调用时需要两个参数:x 和 n。
如果某种场合下,比如我们只计算 L 元素的 2 次方平均数,程序改为:
def power_sum(L,n=2):
sum = 0
for x in L:
sum = sum + x**n
return sum/len(L)
print power_sum(range(1,6))
这时,我们再调用函数时,只需要一个参数。不过要注意,由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面。
2. 定义可变参数
当函数的参数不确定时,即不同情况下输入参数不同,此时可以如下定义:
def average(*args):
...
还是上例,假如输入不是 List,而是一个一个单个数据输入:
def power_sum(*args):
sum = 0
for x in args:
sum = sum + x**2
return sum/len(args)
print power_sum(5,3,4,1,2)
print power_sum(5,7,4,1,2,6,3)