【Volta】自动化测试-python基础1-函数

1、函数概念
函数就是组织好的,可重复使用的,用来实现单一或者相关联功能的代码段
2、函数格式

def 函数名(参数1,...参数n):
  代码块
  return 值

3、函数返回值
概念:函数执行完后会返回一个对象,如果在函数内部有return,就可以返回实际的值,否则返回None
类型:可以返回任意类型,取决于return后面的类型
用途:给调用方返回数据,如果在一个函数体内,执行了return,表明函数执行完毕退出,return后面的代码语句将不会执行。

def max(a,b):
    if a > b:
        max = a
    else:
        max = b
    return max
a=max(5,10)
print(a)

4、参数类型:
参数:函数为了实现某项特定的功能进而为了得到实现功能所需要的数据
(1)、必需参数
必须以正确的顺序传入参数,调用时的数量必须和函数定义时一致

def Info(name,age,sex):
    return f'姓名:{name}  年龄:{age}  性别:{sex}'
a=Info('阿离',18,'女')
print(a)

(2)、关键字参数(顺序不匹配)
允许函数调用时参数的顺序与定义不一致
使用关键字来确定传入的参数值

def Info(name,age,sex):
    return f'姓名:{name}  年龄:{age}  性别:{sex}'
b=Info(sex='男',name='易',age='30')
print(b)

(3)、默认参数(个数不匹配)
调用函数时,可以对默认参数不传值,取默认值,否则取所传递的值

def Info1(name,sex,age='19'):
    return f'姓名:{name}  年龄:{age}  性别:{sex}'
c=Info1(sex='男',name='努努')
print(c)

(4)、不定长参数
不能确定调用方要使用的参数个数及类型时,可以定义为不定长参数
a-元组型,不确定的参数为元组类型(*args)

def Info2(Animal,*args):
    print(f'{Animal} is lovely,It have {args} ')
Info2('dog','mouth','ear','nose','eye','hair')

b-字典型,不确定的参数为字典类型(**kwags)

def Info2(name,age,**kwargs):
    ab = {'name':name,'age':age}
    for key,value in kwargs.items():
        ab[key]=value
    print(f'{name}的个人信息',ab)
Info2('小明',16,sex='男',hobby='basketball')
Info2('小花',14,score=14)

# 另一种简洁表达
ac = {'sex':'男','hobby':'basketball'}
ad = {'score':14}
Info2('小明',16,**ac)
Info2('小花',14,**ad)

c-不定长关键字传参,*单独出现
命名关键字参数,限制关键字参数的名字,关键字的名称传参要与形参一致

def Info3(name,age,*,sex,city):
    print(name,age,sex,city)
Info3('格格',26,sex='女',city='西安')

# 计算多个数字之和
def sum(*args):
    sum=0
    for i in args:
        sum+=i
    print(sum)
    pass
sum(1,2,3,4,5)

5、嵌套函数
(1)、嵌套函数

def a():
    return 25
def b(a):
    c=a()+35
    return c
print(b(a))

(2)、递归函数
自己调用自己本身函数
注意:
结束的条件;
递推的条件

# 递归函数
def num(n):
    if n==1:
        return 1
    return n*num(n-1)
res = num(5)
print(res)

【理解:当n=5,return 5num(4)
继续调用num()方法 return 5
4num(3)
继续调用num()方法 return 5
4**3num(2)
继续调用num()方法 return 5
432num(1)
继续调用num()方法 return 5
4321
递归结束,return 5
432*1】

# 递归函数实现斐波那契数列1,1,2,3,5,8,13...
def fb(n):
    if n==1 or n == 2:
        return 1
    return fb(n-1)+fb(n-2)
nums=[]
for i in range(1,6):
    nums.append(fb(i))
print(nums)
posted @ 2022-01-07 21:54  一只小妖兽  阅读(26)  评论(0)    收藏  举报