一、 函數(shù)
1.從Python中調(diào)用函數(shù)
從Python的官方網(wǎng)站查看文檔:(abs)
http://docs.python.org/2/library/functions.html#abs
或者
在交互命令 help(bas)
abs函數(shù)是求絕對(duì)值
>>>abs(-2)
2
cmp(x,y)比較函數(shù),如果x<y,返回-1,如果x==y,返回0,如果x>y,返回1
int()函數(shù),把其他類型轉(zhuǎn)換為整數(shù)
>>>int('123')
123
>>>int(12,34)
12
str()把其他類型轉(zhuǎn)換成str。
>>>str(123)
'123'
>>>str(1.23)
'1.23'
列:
L=[ ]
x=1
while x<=100:
L.append(x*x)
x=x+1
print sum(L)
2.編寫函數(shù)
定義函數(shù)是要同def語(yǔ)句,依次寫出函數(shù)名、括號(hào)、括號(hào)中的參數(shù)和冒號(hào)
def my_abs(x):
if x>=0:
return x
else:
return -x
列:定義一個(gè)square_of_sum 函數(shù),它接受一list,返回list中每個(gè)元素平方的和。
def square_of_sum(L):
sum=0
for x in L:
sum=sum+x*x
return sum
或者
def square_of_sum(L):
M=[ ]
for x in L:
M.append(x*x)
return sum(M)
3.函數(shù)之返回多值
math包提供了sin()和cos()函數(shù),用import應(yīng)用。
import math
def move(x,y,step,angle):
nx=x+step*math.cos(angle)
ny=y-step*math.sin(angle)
return nx,ny
列:編寫一個(gè)函數(shù),返回一元二次方程的兩個(gè)解。
import math
def quadratic_equation(a,b,c):
if b*b-4*a*c<0:
return
else:
x1=(-b+math.sqrt(b*b-4*a*c))/(2*a)
x2=(-b-math.squt(b*b-4*a*c))/(2*a)
return x1,x2
或者簡(jiǎn)單的
def quadratic_equation(a,b,c):
t=math.sqrt(b*b-4*a*c)
return(-b+t)/(2*a) , (-b-t)/(2*a)
4.遞歸函數(shù)
計(jì)算階乘n!=12345...*n用fact(n)表示。
fact(n)用遞歸的方式:
def fact(n):
if n==1:
return 1
return n*fact(n-1)
5.定義默認(rèn)參數(shù)
定義函數(shù)時(shí),還可以有默認(rèn)參數(shù)。
計(jì)算x的N次方的函數(shù):
def power(x,n):
s=1
while n>0:
n=n-1
s=s*x
return s
默認(rèn)參數(shù)只能定義在必需參數(shù)的后面
6. 定義可變參數(shù)
可變參數(shù)的名字前有*號(hào)
列:求平均值
def average(*args)
sum=0.0
if len(args)==0:
return sum
for x in args:
sum=sum + x
return sum/ln(args)
>>>print average()
0.0
>>>print average(1,2)
1.5
>>>print avetrage(1,2,2,3,4)
2.4