import math # 函数的必选参数 \'\'\'函数的必选参数,指的是函数调用的时候必须传入的参数 \'\'\' def cal (n): return n * n var = cal(2) print(var) # 4 \'\'\'上面的函数是计算一个数的平方,当要计算n^3, n^4.... 只能传入2个必选参数 \'\'\' def cal_update(n,m): return int(math.pow(n,m)) var = cal_update(2,4) print(var) # 16 \'\'\'但是,如果大多数情况下,都是平方计算,那每次都 cal_updtae(n,2)就会很麻烦,因此引入了默认参数 \'\'\' # 函数的默认参数 \'\'\'默认参数,默认情况下的传入的参数 \'\'\' def cal_update2(n,m=2): return int(math.pow(n,m)) var = cal_update2(3) # 只需传入一个参数,默认传入2 print(var) # 9 def student(name,sex,city=\'shanghai\',age=\'20\'): print (\'name:\', name) print(\'sex:\', sex) print(\'city:\', city) print(\'age:\', age) student(\'chris\',\'male\') # name: chris # sex: male # city: shanghai # age: 20 \'\'\'默认参数必须是不变对象,若是可变的对象可能出现问题 \'\'\' def count(name=[]): name.append(\'chris\') print(name) return name count(name=[\'sarah\',\'Tom\']) # [\'sarah\', \'Tom\', \'chris\'] count(); # [\'chris\'] count() # [\'chris\', \'chris\'] 当我重新调用这个函数的时候,默认参数name 并不是[],而是上一次没有清空的[\'chris\'] \'\'\'默认参数是一个变量,函数定义的同时,已经被计算出来,若是有变化,它会指向新的地址 \'\'\'