学习 python 2 - python 函数「半原创」


本文会带来什么

  1. 函数定义
  2. 函数参数定义(可变参数,关键字参数等)

函数

1.系统函数举例

1
2
3
4
# 转换为 int 类型
a = int("1")
print(a)
# // 同样,string,float,boolean等

2.函数名赋予一个变量

1
2
3
#  --------------可以把函数名赋予一个变量
a = abs
print(a(-12))

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
#  --------------空函数
# 如果想定义一个什么事也不做的空函数,可以用pass语句
def nothing():
pass
print(nothing())

5.检查参数类型(isinstance)

1
2
3
4
5
6
7
#  --------------检查参数类型(isinstance)
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
#  --------------抛出异常(raise)
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
#  --------------关键字参数
# 而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
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
#  --------------限制 关键字参数的
# 关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数
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
#  --------------参数组合
# 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
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)

参考