【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 54num(3)
继续调用num()方法 return 54**3num(2)
继续调用num()方法 return 5432num(1)
继续调用num()方法 return 54321
递归结束,return 5432*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)

浙公网安备 33010602011771号