【测试开发】python系列教程:函数
上一篇
本次分享函数
正文
函数是可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。也可以自己创建函数,这被叫做自定义函数。
那么如何来定义函数呢?它的规则是什么呢?
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号 : 起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
格式:
语法
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表):
函数体
默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。
我们来定义一个函数,实现打印hello
def printhell():
print('hello')
printhell()
运行
看下这个函数是否有返回值
def printhell():
print('hello')
print(printhell())
结果
那么让它返回leizi,如何做呢
def printhell():
print('hello')
return 'leizi'
# printhell()
print(printhell())
运行
携带参数
def printhell(a,b):
if a>b:
return False
else:
return True
print(printhell(1,2))
结果
携带可迭代的参数
def appendlist(a):
for i in a:
print(i)
appendlist([1,2,34])
传入的是个可变的list,我们可以对list进行操作。
函数调用
定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。
def printhell(a,b):
if a>b:
return False
else:
return True
# 调用函数
print(printhell(1,2))
print(printhell(2,3))
结果
我们可以调用函数执行我们想要执行的内容。
参数
以下是调用函数时可使用的正式参数类型:
必需参数
关键字参数
默认参数
不定长参数
必需参数
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
比如:
def appendlist(a):
for i in a:
print(i)
appendlist([1,2,34])
appendlist()
二次调用的时候,没有传递参数,我们看下最后的执行的结果
会报错,证明这个a参数必须去传递的。
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
def appendlist(a):
#打印函数传递进来得关键字参数
print(a)
appendlist([1,2,34])
结果:
如果我们在调用多个参数得函数,没有按照顺序输入,我们可以这么来输入
def appendlist(a,b):
print(a)
print(b)
appendlist(b=[1,2,34],a=1)
指定了参数是哪个,结果:
默认参数
调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值:
例如:
def appendlist(a,b=100):
print(a)
print(b)
appendlist(a=1)
结果:
这里需要注意,如果参数有得给默认参数了,有得没有给,在定义函数的时候,一定要没有默认参数的在前面,有得在后面,不如会报错。
不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。基本语法如下:
def functionname([args,] *_tuple ):
"函数_文档字符串"
function
return [expression]
加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。
def appendlist(a,*b):
print(a)
print(b)
appendlist(1,2,3,4)
结果;
可以看到1给了a,其他的都给了b,然后打印出来是一个元祖
还有一种就是参数带两个星号 **基本语法如下:
def functionname([args,] **_tuple ):
"函数_文档字符串"
function
return [expression]
代码演示
def appendlist(a,**b):
print(a)
print(b)
appendlist(1,A=1,B=2)
打印结果
在编写函数的时候,一定要注意,我们的函数名尽量不要和系统内置函数的名称有冲突。最好采用名词加动词,或者驼峰的命名,这样避免和系统的内置的函数重复。
相关文章
- python爬百度翻译demo
- python将获取到的数据保存到文本
- python:使用xpath获取想要的数据
- 接口测试第2讲:Python测试框架——unittest
- 接口测试第3讲:Python测试框架——pytest
- [python]pythonic的字典常用操作
- pip install mysql-connector-python失败
- [python]自问自答:python -m参数?
- [python]在场景中理解装饰器
- [python]python元类
- [python]pip常用命令(转载)
- [python基础知识]python内置函数map/reduce/filter
- [python]逆水行舟不进则退(1)
- [Python]新手写爬虫全过程(已完成)
- [Python]爬虫v0.1
- [Python]同是新手的我,分享一些经验
- [python]闭包到底是什么鬼?
- (转)python生态环境简介
- 再学python类(终结篇)
- python中xrange和range的异同