!!!定义默认参数要牢记一点:默认参数必须指向不变对象!!!
def add_end(L =[]):
L.append('END')
return L
print (add_end()) #['END'],默认参数L为可变对象,经调用,默认参数对象内容改变成L =['END']
print (add_end()) #['END','END'],本次调用中,依据上次变更后的内容进行调用
def add_end(L =None):#定义默认参数必须指向不变对象
if L is None:
L = []
L.append('END')
return L
print (add_end()) #[‘END’]
print (add_end()) #[‘END’]
练习!!
定义一元二次函数
# _*_ coding:utf-8 _*_
import math
def quadratic(a,b,c): #定义函数名和位置参数
if (b**2-4*a*c) >=0:
x1 = (-b+math.sqrt((b**2-4*a*c)))/(2*a)
x2 = (-b-math.sqrt((b**2-4*a*c)))/(2*a)
return x1,x2
else :
return u'无解'
print ('quadratic(2,3,1)=',quadratic(2,3,1))#quadratic(2,3,1)=(-0.5,-1)
print ('quadratic(1,3,-4)=',quadratic(1,3,-4))#quadratic(2,3,1)=(1.0,-4.0)
print ('quadratic(4,1,4)=',quadratic(4,1,4))#quadratic(2,3,1)= 无解