本文会带来什么
函数定义
函数参数定义(可变参数,关键字参数等)
函数 1.系统函数举例
2.函数名赋予一个变量
3.普通声明函数举例 在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回
1 2 3 4 5 def my_sum (x,y) : c = int(x) + int(y) return c print(my_sum(11 ,2 ))
4.空函数 如果想定义一个什么事也不做的空函数,可以用pass语句
1 2 3 4 5 def nothing () : pass print(nothing())
5.检查参数类型(isinstance) 1 2 3 4 5 6 7 def mySum (x,y) : if (not isinstance(x,(int,float)) or (not isinstance(y,(int ,float))) ): print("not the right type" ) else : print("is the right type" ) mySum(1 ,"a" )
6.抛出异常(raise) 1 2 3 4 5 6 7 def mySum (x,y) : if (not isinstance(x,(int,float)) or (not isinstance(y,(int ,float))) ): raise TypeError('type error' ) else : print("is the right type" ) mySum(1 ,"a" )
7.返回多个值 1 2 3 4 def returnMore (x,y) : return x,y,x+y print(returnMore(1 ,3 ))
8.设置默认参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def returnMore (x, y=2 ) : s = int(x + y) return s print(returnMore(1 ,3 )) print(returnMore(1 )) def power (x, n=2 ) : s = 1 while n > 0 : n = n - 1 s = s * x return s print(power(5 ))
9.设置可变长参数 1 2 3 4 5 6 7 def addSum (*numbers) : sum = 0 ; for n in numbers: sum += n return sum print(addSum(1 ,2 ,3 ))
10.已知数组作为 可变长参数 1 2 3 4 5 6 7 8 9 def addSum (*numbers) : sum = 0 ; for n in numbers: sum += n return sum abc = [1 ,2 ,3 ,4 ] print(addSum(*abc))
11.关键字参数 1 2 3 4 5 6 7 8 9 def person (name, age, **kv) : print("name:" , name, ",aaa:" , age, ",other:" , kv) extas = {"aaa" : 12 , "bbb" : 13 } print(extas.get("name" )) person("houshijie" , 21 ,**extas)
12.检测传入关键字参数的内容 1 2 3 4 5 6 7 def person (name, age, **kv) : if "aaa" in kv: print("aaa in kv" ) print("name:" , name, ",aaa:" , age, ",other:" , kv) extas = {"aaa" : 12 , "bbb" : 13 } person(1 ,2 ,**extas)
13.限制 关键字参数的内容 1 2 3 4 5 def person (name, age, *,city) : print("name:" , name, ",aaa:" , age, ",other:" , city) person(12 ,12 ,city = "a" )
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了
14.参数组合 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数 1 2 3 4 5 6 7 def f1 (a, b, c=0 , *args, **kw) : print('a =' , a, 'b =' , b, 'c =' , c, 'args =' , args, 'kw =' , kw) def f2 (a, b, c=0 , *, d, **kw) : print('a =' , a, 'b =' , b, 'c =' , c, 'd =' , d, 'kw =' , kw)
参考