Python之函数

调用函数

Python内置了很多有用的函数,可以直接调用

调用一个函数,需要知道函数的名称和产生参数
1、abs()绝对值函数 直接使用abs(-20)

2、比较函数cmp() 直接使用cmp(x,y) 如果xy,返回值为1;

3、int()函数可以把其他数据类型转换为整数
int(‘123’) 输出的是123
int(12.34) 输出的是12

4、sum()求和函数
例如
sum()函数接受一个list作为参数,并返回list所有元素之和。
请计算 11 + 22 + 33 + … + 100100。

1
2
3
4
5
6
7
8
l=[]
x=1
while x<=100:
l.append(x*x)
x=x+1
print sum(l)

编写函数

在Python中,定义一个函数要使用def语句,
以此写出函数名、括号、括号中的参数和冒号:
然后在缩进块中编写函数体,函数的返回值用return语句返回
例如

1
2
3
4
5
6
7
def my_abs(x):
if x>=0:
return x
else:
return -x

定义一个 square_of_sum 函数,它接受一个list,返回list中每个元素平方的和。

1
2
3
4
5
6
7
8
9
def square_of_sum(l):
sum=0
for x in l:
sum=sum+x*x
return sum
print square_of_sum([1,2,3,4,5])
print square_of_sum([-5,0,5,15,25])

返回多值

math包提供了sin() cos()函数,先用import引用它:

1
2
3
4
5
6
7
import math
def move(x,y,step,angle):
nx=x+step*math.cos(angle)
ny=y-step*math.sin(angle)
return nx,ny

一元二次方程的定义是:ax² + bx + c = 0
编写一个函数,返回一元二次方程的两个解。

1
2
3
4
5
6
7
8
import math
def quadratic(a,b,c):
t=math.sqrt(b*b-4*a*c)
return (-b + t) / (2 * a),( -b - t )/ (2 * a)
print quadratic(2, 3, 0)
print quadratic(1, -6, 5)

递归函数

求阶乘 n! 用fact(n)表示

1
2
3
4
5
6
7
8
9
10
def move (n,a,b,c):
if n==1:
print a,'-->',c
return
move(n-1,a,c,b)
print a,'-->',c
move(n-1,b,a,c)
move(4,'a','b','c')
Fork me on GitHub