前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【测试开发】python系列教程:函数

【测试开发】python系列教程:函数

作者头像
雷子
发布2022-12-29 19:49:33
2680
发布2022-12-29 19:49:33
举报

上一篇

【测试开发】python系列教程:迭代器与生成器

本次分享函数


正文

函数是可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。也可以自己创建函数,这被叫做自定义函数。

那么如何来定义函数呢?它的规则是什么呢?

代码语言:javascript
复制
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号 : 起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

格式:

代码语言:javascript
复制
语法
Python 定义函数使用 def 关键字,一般格式如下:

def 函数名(参数列表):
    函数体

默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

我们来定义一个函数,实现打印hello

代码语言:javascript
复制
def  printhell():
    print('hello')
printhell()

运行

看下这个函数是否有返回值

代码语言:javascript
复制
def  printhell():
    print('hello')
print(printhell())

结果

那么让它返回leizi,如何做呢

代码语言:javascript
复制
def  printhell():
    print('hello')
    return 'leizi'
# printhell()
print(printhell())

运行

携带参数

代码语言:javascript
复制
def  printhell(a,b):
    if a>b:
        return False
    else:
        return True
print(printhell(1,2))

结果

携带可迭代的参数

代码语言:javascript
复制
def  appendlist(a):
    for i in a:
        print(i)
appendlist([1,2,34])

传入的是个可变的list,我们可以对list进行操作。

函数调用

定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。

代码语言:javascript
复制
def  printhell(a,b):
    if a>b:
        return False
    else:
        return True
# 调用函数
print(printhell(1,2))
print(printhell(2,3))

结果

我们可以调用函数执行我们想要执行的内容。

参数

以下是调用函数时可使用的正式参数类型:

必需参数

关键字参数

默认参数

不定长参数

必需参数

必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

比如:

代码语言:javascript
复制
def  appendlist(a):
    for i in a:
        print(i)
appendlist([1,2,34])
appendlist()

二次调用的时候,没有传递参数,我们看下最后的执行的结果

会报错,证明这个a参数必须去传递的。

关键字参数

关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

代码语言:javascript
复制
def  appendlist(a):
    #打印函数传递进来得关键字参数
    print(a)
appendlist([1,2,34])

结果:

如果我们在调用多个参数得函数,没有按照顺序输入,我们可以这么来输入

代码语言:javascript
复制
def  appendlist(a,b):
    print(a)
    print(b)
appendlist(b=[1,2,34],a=1)

指定了参数是哪个,结果:

默认参数

调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值:

例如:

代码语言:javascript
复制
def  appendlist(a,b=100):
    print(a)
    print(b)
appendlist(a=1)

结果:

这里需要注意,如果参数有得给默认参数了,有得没有给,在定义函数的时候,一定要没有默认参数的在前面,有得在后面,不如会报错。

不定长参数

你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。基本语法如下:

代码语言:javascript
复制
def functionname([args,] *_tuple ):
   "函数_文档字符串"
   function
   return [expression]

加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

代码语言:javascript
复制
def  appendlist(a,*b):
    print(a)
    print(b)
appendlist(1,2,3,4)

结果;

可以看到1给了a,其他的都给了b,然后打印出来是一个元祖

还有一种就是参数带两个星号 **基本语法如下:

代码语言:javascript
复制
def functionname([args,] **_tuple ):
   "函数_文档字符串"
   function
   return [expression]

代码演示

代码语言:javascript
复制
def  appendlist(a,**b):
    print(a)
    print(b)
appendlist(1,A=1,B=2)

打印结果

在编写函数的时候,一定要注意,我们的函数名尽量不要和系统内置函数的名称有冲突。最好采用名词加动词,或者驼峰的命名,这样避免和系统的内置的函数重复。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数调用
  • 参数
    • 必需参数
      • 关键字参数
        • 默认参数
          • 不定长参数
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档