标签:年龄 sum mos 导入 block 种类 turn 测试 def
函数函数能提高应用的模块性,和代码的重复利用率。定义一个函数比较简单,但是需要遵循以下几点规则:
定义函数格式:
def 函数名(参数):
函数体
参数主要有以下4种类型:必需参数、关键字参数、默认参数、不定长参数。
必传参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。如果我们定义一个加法函数,需要我们传入2个参数,如果我们只传入一个参数,就会出现语法错误如下代码所示:
def add(a, b):
return a + b
print(add(1))
上面代码将输出如下内容:
Traceback (most recent call last):
File "F:/blogApiTest/test4.py", line 4, in <module>
print(add(1))
TypeError: add() missing 1 required positional argument: ‘b‘
函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。如下代码所示:
def person(name, age):
print("名字: ", name)
print("年龄: ", age)
# person
person(age=50, name="testDog")
我们必传参数的顺序是name、age,如果我们想要使用关键字参数,我们在调用person函数的时候,通过参数名赋值,改变参数传入顺序。
调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值,如下代码所示:
def person(name, age=35):
print("名字: ", name)
print("年龄: ", age)
# person
person(age=50, name="testDog")
print("------------------------")
person(name="testDog")
上面代码将输出如下内容:
名字: testDog
年龄: 50
名字: testDog
年龄: 35
加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。
可变参数格式:
def 函数名(*参数):
函数体
我们现在有一个需求,定义一个加法函数,这个加法函数可以接收任意个参数然后进行相加,那么如何去实现呢?这里就要用到可变参数。如下代码所示:
def add(*numbers):
sum = 0
for n in numbers:
if type(n) == int or type(n) == float:
sum = sum + n
else:
n = 0
sum = sum + n
return sum
print(add(1, 2, ‘a‘))
上面代码将输出如下内容:
3
上面代码比较简单,定义一个加法函数,参数类型是可变参数类型,我们已经知道可变参数格式是元组形式,所以我们读取元组中每一个数据进行相加,如果元组中数据不是数字,我们把数据替换为0。
欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560
标签:年龄 sum mos 导入 block 种类 turn 测试 def
原文地址:http://blog.51cto.com/10895137/2351650