首页 > 代码库 > Python 函数的参数

Python 函数的参数

# coding=gbk# python 函数的参数:包括必选参数,默认参数,可变参数,关键字参数# 1 必选参数,就是每次必选要输入的参数def abs1(num):                 #计算绝对值    if isinstance(num,[int,float]):        return abs(num)    else :        raise TypeError ("num is not the right type")a = abs(1)print (a)
# 2 默认参数,就是每次如果不输入,则使用系统默认值def sqrt_n(x,n=2): #计算n次方 s=1 while n>0: s=s*x n=n-1 return sprint (sqrt_n(5))print (sqrt_n(5,3))# 当有多高默认参数的时候,可以再调用的时候指定某个参数的值def student_enroll(name,age,city="beijing",gender=male): return name,age,city,genderstudent1 = student_enroll("Jim",18)student2 = student_enroll("Obama",18,gender="female")print ("st1 is: ",student1,\nst2 is: ,student2)
# 3 可变参数,传入的参数的个数是变的,他们调用时自动组装为一个tuple 举例说明def sum2(*numbers): #计算几个数的和 sum2=0 for i in numbers: sum2=sum2+i return sum2a=(1,5,2,6,2) #这里使用list同样有效,方法一样print (sum2(*a)) #此处输入的是tuple,所以a的前面加*表示可变参数,实际可以这么写print (sum2(1,5,2,6,2))# 或者print (sum2(a[0],a[1],a[2],a[3],a[4]))
# 4 关键字参数,允许传入0个或者任意个含参数名的参数,这些关键字参数自动组装为一个dictdef matriculate(name,age,**kw): #此处的kw是keyword的缩写,也可以用其他字符替代 return(name,age,kw) s1 = matriculate("tom",18)s2 = matriculate("Jack",18,city = beijing,gender = male)print (s1 is: ,s1,\n,s2 is:,s2)#也可以提前定义好关键字参数kw(这里用sim代替),然后直接用如sim={city:beijing,job:teacher,gender:male}s3= matriculate(Hu,18,**sim)print (s3)
#网上的例子#最神奇的是通过一个tuple和dict,你也可以调用该函数:def func(a, b, c=0, *args, **kw): print (a =, a, b =, b, c =, c, args =, args, kw =, kw)args = (1, 2, 3, 4)kw = {x: 99}func(*args, **kw)#所以,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它

# 注意‘‘‘默认参数一定要用不可变对象,如l[]=none,否则运行会有逻辑错误*args 是可变参数,args接收的是一次tuple()**kw 是关键字参数,接收的是一个dict{}使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法‘‘‘#部分参考自网络,特此声明

 

Python 函数的参数