测试学习---python(五)

测试学习—python(五)

函数

  1. 格式:
    def 函数名():
    函数中的代码

  2.  规则:
    
  • 必须先定义后调用
  • def 是关键字, ⽤来定义函数的 define 的缩写
  • 函数名需要遵守标识符的规则
  • 处于 def 缩进中的代码,称为函数体
  • 函数定义的时候, 函数体中的代码不会执⾏, 在调⽤的时候才会执⾏
    tips:
    在前期,书写不熟练的时候,
  1. 可以先不管函数,先把功能写出来,
  2. 给多⾏代码起名字
  3. 选中多⾏代码, 使⽤ tab 键进⾏缩进

函数的调用

  1. 格式 函数名()
  2. 文档注释
  • 作用:定义函数时申明函数作用
  • 规则:写在函数名下方使用,“”" “”"注释
  • 查看:光标指向想要查看的函数Ctrl q
    ctrl(cmd) B 转到函数声明中查看(按住Ctrl(cmd) ⿏标左键点击)

函数嵌套调用

在一个函数中调用另一个函数

函数基础

函数的参数

  1. 形参:在定义函数时的参数,在调用函数时赋予实际值 def func(a,b,c) abc为形参
  2. 实参:调用函数时向函数中传递的实际数据 func(1,2,3)123为实参

函数返回值

  1. 使用return 返回
  2. A= func(1,2,3)返回实参为123时,func函数结果并存入变量A中
    3.三类返回值
def 函数名(): # 返回值 None
 pass # 代码中没有 return
def 函数名():
 return # return 后边没有数据, 返回值 None
def 函数名():
 return xx # 返回值是 xx

变量的引用

  1. 在定义变量的时候 变量 = 数据值, Python 解释器会在内存
    中开辟两块空间
  2. 变量和数据都有⾃⼰的空间
  3. ⽇常简单理解, 将数据保存到变量的内存中, 本质是 将 数
    据的地址保存到变量对应的内存中
  4. 变量中存储数据地址的⾏为 就是引⽤ (变量引⽤了数据的地
    址, 简单说就是变量中存储数据), 存储的地址称为 引⽤地址
  5. 可以使⽤ id() 来获取变量中的引⽤地址(即数据的地址),
    如果两个变量的 id() 获取的引⽤地址⼀样, 即代表着, 两个变
    量引⽤了同⼀个数据,是同⼀个数据
  6. 只有 赋值运算符=, 可以改变变量的引⽤(等号左边数据的引
    ⽤)
  7. python 中数据的传递,都是传递的引⽤

测试学习---python(五)_第1张图片

数据类型

  1. 可变类型:数据所在内存允许修改
    list dict set
    测试学习---python(五)_第2张图片

  2. 不可变类型:数据所在内存不允许修改
    int float bool str tuple
    测试学习---python(五)_第3张图片

变量引用

def func(list1):
    list1=[2,1] #list1变量 引用发生改变,但在调用时的实参是不变的
    print(list1,id(list1))

mylist=[2,1]
print(mylist,id(mylist))
func(mylist)
print(mylist,id(mylist))

测试学习---python(五)_第4张图片

  1. 列表+=操作相当于extend()方法(合并列表)
def func(list1):
    list1+=[1,2]
    print(list1,id(list1))
mylist=['a','b']
print(mylist,id(mylist))
func(mylist)
print(mylist,id(mylist))

测试学习---python(五)_第5张图片

  1. 只有=,可以改变引⽤
  2. 可变类型做参数,在函数内部,如果不使⽤=直接修改形参的引⽤,对形参进⾏的数据修改会同步到实参中

交换两个变量的值的方法

1. c=a a=b b=c
2.

a=a+b
b=a-b
a=a-b

3.python交换两变量值方法

a,b=b,a

组包(pack)和拆包(unpackunpack)

  1. 组包:将多个数据值使⽤逗号连接, 组成元组
  2. 拆包:将容器中的数据值使⽤多个变量分别保存的过
    程,注意: 变量的个数和容器中数据的个数要保持⼀致
# 组包
c = b, a # 组包
print(type(c), c) #  (10, 20)
# 拆包
a, b = c
print(a, b) x, y, z = [1, 2, 3]
print(x, y, z)

局部变量 和全局变量

  1. 局部变量: 在函数内部(函数的缩进中)定义的变量,称为是局部变
  2. 全局变量:在函数外部定义的变量, 称为是 全局变量
  • 在函数内部想要修改全局变量的引⽤(数据值), 需要添加
    global 关键字, 对变量进⾏声明为全局变量

函数返回多个数据值

将 多个数据值组成容器进⾏返回, ⼀般是元组(组包)

def func():
 num1=1
 num2=1
 num3=1
 return num1,num2,num3
  • a =cal()
    %%a=(1,1,1)
  • a,b,c =cal()
    %% a=1,b=1,c=1

函数传参的方式

  1. 位置传参
  2. 关键字传参
  3. 混合使用
def func(a, b, c):
 print(f'a: {a}, b: {b}, c: {c}')
# 位置传参
func(1, 2, 3)
# 关键字传参
func(a=2, b=3, c=1)
# 混合使⽤
func(1, 3, c=5)
  1. 缺省参数
def func(a,b=1):
    print(a,b)
  
  func(1)
  # 运行结果1,1
  1. 多值参数
  • 不定长位置传参(* args)#不定长元组参数
  • 不定长关键字传参(** kwargs) #不定⻓字典参数
    -完整参数顺序
def 函数名(普通函数, 
*args, 缺省参数, 
**kwargs):
 pass
def func(*args, 
**kwargs):
 print(type(args), args)
 print(type(kwargs), kwargs)
 print('-' * 30)
func()
func(1, 2, 3) # 位置传参, 数据都给 args
func(a=1, b=2, c=3) # 关键字传参, 数据都给 kwargs
func(1, 2, 3, a=4, b=5, c=6)

函数调用时拆包

list1=[1,2,3]
利用func(*list1),将list1中的数据1,2,3作为不定长位置参数传给func(*args,**kwargs)

dict1={‘a’:1,'b‘:2,‘c’:3}
利用func(** dict1)将字典中的数据转换为a=1,b=2,c=3作为不定长关键字传参传给func(*args,**kwargs)

匿名函数

  1. 格式:变量=lambda 参数:返回值
  2. 规则:只有一行代码
  • 调用时将匿名函数引用保存到一个变量中
  1. 例子
  • 定义一个匿名函数求两个数的乘积
  • 定义一个匿名函数,参数为字典,返回字典中的键为age的值
sumab=lambda a,b:a*b
func1=lambda x:x.get('age')
func2=lambda x:x.['age']
  • 匿名函数作为函数的参数 —列表中字典排序
list1.sort(key=lambda x:x[age])
list1.sort(key=lambda x:x[age],reverse=Ture)
# 说明: 匿名函数中的参数是 列表中的数据, 在 sort 函数内部,会调⽤ key 这个函数(将列表中每个数据作为实参传递给形参),
# 从列表中的获取函数的返回值, 对返回值进⾏⽐⼤⼩操作(<)
def get_value(x):
 return x['age']
 user_list.sort(key=get_value)
  • 字符串比大小
    ord(字符)获得字符对应的ASCII码值
    chr(ASCII)获得对应的字符
    字符串比大小:
    对应下标位置字符的⼤⼩, 直到⽐出⼤⼩, 如果全部⽐完了,还没有⽐出⼤⼩,就是相等

你可能感兴趣的:(软件测试,python,学习,开发语言)