前言

小伙伴们好呀,今天呢笔者给大家来介绍一下python行数的定义和调用,函数的参数、行数的作用域、内置函数。我们都知道要想学习自动化测试必须掌握一门语言,语言中比较好学的就是python语言,所以为了学好自动化测试我们需要将基础打牢,才能更好的掌握自动化测试。

一、函数的定义和调用

1.函数的作用

对特定的一些功能进行封装,提高代码的重用率,进而提升开发的效率,格式:

def  函数名()# 函数体

2.函数名的命名规范

1)可以由字母、数字及下划线(_)组成,但不能用数字开头,且不能使用python中的关键字。

2)函数命名的风格: 单词之间下划线隔开(python中函数命名推荐这种风格), 大驼峰小驼峰写法 ,如:UserName、userName英文单词首字母大写。

3.函数的返回值:return

语法:return 表达式

1)函数的返回值是由return来决定的,return后面写什么,函数的返回值就是什么

2)如果函数中没有return,那么函数的返回值默认为 None

3)return 后面没有任何内容,返回值也是None

4)函数要返回多个数据,可以在return后面,每个数据之间用逗号隔开,调用函数之后接收到的是个元组形式的数据

注意:return的作用除了返回结果外,也可以用于结束函数的运行,只要函数中执行到return,就直接返回内容,跳出函数,return后面的代码就不会执行

4.调用函数

函数名(),示例如下:

def func():print('python666')return "abc", 4444print("99999999999999999999")  # 该行不会被执行res = func()
print(res)

运行结果:

C:\software\python\python.exe D:/myworkspace/test/test/test.py
python666
('abc', 4444)Process finished with exit code 0

二、函数的参数

1.函数形参和实参

定义的参数称为:形参

调用实际传递的为:实参

2.参数传递的两种形式:

位置参数:按位置顺序进行传递

关键字参数:通过关键字指定传给某个参数

# 位置参数(按位置顺序进行传递)
def add_num(a, b, c):  # a,b是形参,没有真正的值,用于接收实参return a + b - cres1 = add_num(67, 12, 1)  # 此时传入的67,12是实参
print(res1)# 关键字参数(通过关键字指定传给某个参数)
res2 = add_num(b=34, a=12, c=11)
print(res2)# 参数混用时,位置参数写最前面,关键字参数写在后面,不能重复传
res3 = add_num(30, c=12, b=12)
print(res3)

运行结果:

C:\software\python\python.exe D:/myworkspace/test/test/test.py
78
35
30Process finished with exit code 0

3.函数定义的三种形参:

  • 必需参数  如:def add_num(a, b, c) ,a,b,c三个参数都必须要传
  • 默认参数(缺省参数) 如:def add_num(a, b, c=99) ,c是默认参数,可以传,可以不传(不传时直接使用c=99)
  • 不定长参数:如:def add_num(a, b, *args, **kwargs) ,其中a和b是必需参数,*args 可以不传,也可以传多个,它接收必需参数、默认参数完之外的位置参数,以元组的形式保存,**kwargs 可以不传,也可以传多个,接收必需参数、默认参数之外的关键字参数,以字典的形式保存
def test(a, b, c, *args, **kwargs):print("a的值", a)print("b的值", b)print("c的值", c)print("*args的值", args)print("**kwargs的值", kwargs)va1 = test(11, 22, 33, 4, 3, 2)
va2 = test(11, 5, 6, 7, g=33, k=22, f=12)
print(va1, va2)

运行结果(有None是因为函数中没有返回值,调用了两次函数因此打印了两个None):

C:\software\python\python.exe D:/myworkspace/test/test/test.py
a的值 11
b的值 22
c的值 33
*args的值 (4, 3, 2)
**kwargs的值 {}
a的值 11
b的值 5
c的值 6
*args的值 (7,)
**kwargs的值 {'g': 33, 'k': 22, 'f': 12}
None NoneProcess finished with exit code 0

扩展:不定长参数可以使用*对元组(列表也可以,但一般不用)进行拆包,**可以对字典进行拆包,拆包原理如下:

# 拆包
def func():return 11,22,33   # 当返回结果有多个值时,会以元组的形式返回c1 = func()
print(c1)    # 返回的是一个元组(11,22,33)a,b,c =func()   # 可以通过变量把返回的元组进行拆包,接收对应的值,a接收了11,b接收了22,c接收了33
print(a,b,c)   # 返回对应的元素11,22,33

运行结果:

C:\software\python\python.exe D:/myworkspace/test/test/test.py
(11, 22, 33)
11 22 33Process finished with exit code 0

拆包在自动化测试中有很大的作用,如果不理解,可以动手多敲几遍,以下是拆包示例:

def func(a, b, c):print('这是', a)print('这是', b)print('这是', c)# 利用*、**分别对元组、字典拆包:只能用在函数调用时使用
# 对元组进行拆包
func(*(1, 2, 3))print('-------分割线-------')
tu = (4, 5, 6)
func(*tu)print('-------分割线-------')
# 对字典进行拆包, 注意**kwargs接收的是接收必需参数、默认参数之外的关键字参数
# 因此字典的键要与函数的形参一致
dic = {'a': 88, 'b': 90, 'c': 91}
func(**dic)

运行结果:

C:\software\python\python.exe D:/myworkspace/test/test/test.py
这是 1
这是 2
这是 3
-------分割线-------
这是 4
这是 5
这是 6
-------分割线-------
这是 88
这是 90
这是 91Process finished with exit code 0

三、函数的作用域

1.全局变量

直接定义在py文件(即模块)中的变量,叫全局变量,在该文件中任何地方都可以使用

2.局部变量

在函数内部定义的变量,叫做局部变量,只能在该函数内部使用,函数外部无法使用

3.声明局部变量

关键字:global 在函数内部声明全局变量。

变量的查找过程:由内到外(先找函数自身的,没有再去外面找)。

如果要在外部使用函数内部定义的局部变量,需要声明该变量,简单来说就是告诉程序,这个变量在这个模块内都能使用。

name = "张三"     # 定义一个全局变量def func():# global a  # 如果要声明全局变量,要加上这句a = 100     # 定义一个局部变量print(a)print(name)func()   # 调用函数
print("------分割线-----")
print(name)     # 全局变量哪里都能使用
print(a)     # 这是一个局部变量,打印a运行会报错说a没有被定义,如果要使用a就要声明a为全局变量print("------分割线-----")
aa = 10
def func():print(aa)    # 变量的查找过程:由内到外(先找自身的,没有再去外面找)
func()

运行结果(因为报错了,所以后面的aa没有打印出来,只要声明全局变量就不会报错):

C:\software\python\python.exe D:/myworkspace/test/test/test.py
100
张三
------分割线-----
张三
Traceback (most recent call last):File "D:/myworkspace/test/test/test.py", line 12, in <module>print(a)     # 这是一个局部变量,打印a运行会报错说a没有被定义,如果要使用a就要声明a为全局变量
NameError: name 'a' is not definedProcess finished with exit code 1

四、python内置函数

内置函数就是python编程语言中预先已经定义的函数,直接调用即可,常用的内置函数如下:

  • len():获取 列表\字符串\元组\字典 中的元素总数量(数据的长度)
  • eval():识别字符串中的python表达式
  • zip(): 聚合打包
  • max():获取数据中元素的最大值
  • min():获取数据中元素的最小值
  • sum():对元素进行求和

总结

文章就写到这里了哟,希望可以帮助到正在学习python自动化测试的小伙伴哟,这些都是很基础的一些东西,咱们想要进步就得先打好基础。喜欢的小伙伴记得一键三连哟。

python基础什么是函数的定义及用法相关推荐

  1. python基础知识之函数的定义及用法

    目录 前言: 一.函数的定义和调用 1.函数的作用 2.函数名的命名规范 3.函数的返回值:return 4.调用函数 二.函数的参数 1.函数形参和实参 2.参数传递的两种形式: 3.函数定义的三种 ...

  2. Python基础day04【函数(定义与调用、文档说明、传参函数、全局变量、返回值、嵌套调用)】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[字典]    目录 3.函数 函数的定义和调用 函数定义 PEP8规范 ...

  3. Python基础教程:函数的定义

    1,函数定义: def 函数名称([参数1,参数2,参数3......]):执行语句 2,实例一(不带参数和没返回值): ''' Python大型免费公开课,适合初学者入门 加QQ群:57981733 ...

  4. python中的EVAL函数的定义和用法!

    https://blog.csdn.net/weixin_42859280/article/details/84673079 Python 内置函数 Python 内置函数 描述: eval() 函数 ...

  5. Python基础day05【函数应用:学生管理系统、拆包、今日总结】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  6. Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  7. python导入模块的语法结构_python学习第五讲,python基础语法之函数语法,与Import导入模块....

    python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 函数,就是一个代码块,这个代码块是别人写好的.我们调用就可以. 函数也可以称为方法. 1.函数语法定义 ...

  8. Python训练营—Tesk3—Python基础进阶—从函数到高级魔方方法

                    Python基础进阶--从函数到高级魔方方法 目录 Python基础进阶--从函数到高级魔方方法 一.函数 1.函数的定义 2.函数的调用 3.函数参数 4.变量作用域 ...

  9. python什么元素为真_如何使用Python基础内置函数

    如何使用Python基础内置函数 发布时间:2020-08-05 13:46:59

  10. python中递归函数的基例_详谈Python基础之内置函数和递归 Python递归和循环的区别...

    Python 递归函数基例 2. 关于递归函数基例的说明,以下选项中错误的是 A 递归函数的基例决定所谓基例就是不需要递归就能求解的,一般来说是问题的最小规模下的解. 例如:斐波那契数列递归,f(n) ...

最新文章

  1. 【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第四节 参数传递对堆栈的影响 1
  2. Python 配置文件之ConfigParser模块(实例、封装)
  3. jenkins 忘记用户名和密码
  4. 浙大2016计算机考研分数线,浙江大学2016年硕士研究生复试分数线
  5. android 切换主题介绍一
  6. java 命令行运行 打包 IDEA
  7. 加速科技赋能,城商行为何都瞄准全闪存?
  8. 浏览器连不上 Flink WebUI 8081 端口
  9. 如何关闭 Win 10 系统自动更新
  10. 初学计算机应该学些什么,学电脑要先学什么 学电脑要学习什么知识
  11. mac电脑有很多._开头的文件
  12. html文档半结构化数据,什么是半结构化数据?
  13. 「算法」拓扑排序(货真价实,童叟无欺)
  14. 树莓派蓝牙连接就断开
  15. Redis主从架构 | 黑马Redis高级篇
  16. matlab之plot、fplot、ezplot函数
  17. php mysql开发实战 光盘_随书光盘-PHP开发实战1200例 | 软件库
  18. ipadmini5远程服务器,为什么iPadmini5被称为“等等党的耻辱”?原因可以分为3点!...
  19. 小米MIUI优化weblog
  20. onvif测试工具的使用教程

热门文章

  1. int和Integer有什么区别
  2. brew mysql_brew mysql
  3. MAC - macbook Ctrl键失灵的解决办法
  4. WIN7系统VC6中添加OCX出现“不支持此接口” 问题的解决方法
  5. python发微信消息_利用python实现微信消息自动提醒
  6. 1155低功耗cpu排行_低功耗是亮点 Intel第三代酷睿CPU评测
  7. 为什么公交Wi-Fi还不如地铁上普及?
  8. Java-Anagram方法
  9. 《银河英雄传说》杨威利经典语录2
  10. 2008年最吸引眼球的10只股票