函数

函数能提高应用的模块性,和代码的重复利用率。定义一个函数比较简单,但是需要遵循以下几点规则:

  1. 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  2. 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  3. 函数内容以冒号起始,并且缩进。
  4. return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

定义函数格式

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

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

最新文章

  1. linux命令crontab
  2. js 对象 copy 对象
  3. Java 中的 static 使用之静态初始化块
  4. 监听调试web service的好工具TCPMon
  5. Dede CMS 5.5 升级到 5.7 SP1
  6. jQuery编程基础精华01(jQuery简介,顶级对象$,jQuery对象、Dom对象,链式编程,选择器)
  7. Android scrollview嵌套listview运行后最先显示出来的位置不在顶部而是中间问题
  8. 日文“表” php 会报错
  9. 一道面试题与Java位操作 和 BitSet 库的使用
  10. 64位windows8.1编译openjdk8
  11. 基于visual Studio2013解决面试题之1007鸡蛋和篮子
  12. 获取listboxitem在ListBox中的index并转换成abcd
  13. leaflet地图在选项卡中不正常显示
  14. oracle行转列函数
  15. MySQL unique 注意
  16. java 发送 mail 纯文本发送和html格式发送
  17. mysql case when * else end
  18. Java 8 Optional 类
  19. 浅析requests库响应对象的text和content属性
  20. Python Signal 信号

热门文章

  1. HTML5: HTML5 表单属性
  2. promise基础用法
  3. 2019牛客多校第七场C-Governing sand(线段树+枚举)
  4. html 局部打印
  5. linux 下安装与使用
  6. export export-default import 使用场景
  7. PHP简单导出Excel表格
  8. __user表示是一个user mode的pointer,所以kernel不可能直接使用。
  9. android中的ContentProvider实现数据共享
  10. 从一个url地址到最终页面渲染完成,发生了什么?