Python【二】

函数

官方提供的函数

  • python官方提供的函数,可以直接调用
  • https://docs.python.org/zh-cn/3/library/functions.html#abs

自定义函数

#这里的代码不是纯Python的,是用Airtest ide写的。copy上来为了方便理解自定义函数的意思
def log_out():
	poco("com.sundayfun.daycam:id/swipe").child("android.widget.LinearLayout").offspring("com.sundayfun.daycam:id/main_page_my_profile_icon_layout").child("com.sundayfun.daycam:id/iv_tab_icon").click()
	poco("com.sundayfun.daycam:id/iv_setting").click()
	while True:
	    if not poco(text="退出登录").exists():
	        poco.swipe([0.5,0.8],[0.5,0.4])
	    else:
	        print("退出登录")
	        poco(text="退出登录").click()
	        sleep(1.0)
	        poco(text="退出登录").click()
	        break
	poco("com.sundayfun.daycam:id/welcomeLoginText").click()
	sleep(1.0)
	#结尾前还可以加个断言判断是否退出成功
	return
	
#自定义函数还可以传参
def send_try(a,b):
	if a>0:
		a=a+b
		b=a^2
	else:
		a=b
		b=b+1
	return a,b
print(send_try(3,1))
print(send_try(-3,1))

定义空函数

def nothing():
	pass #代码内使用pass做占位符,就可以定义一个空函数,跑起来的时候也不会报错

递归函数

  • 一个函数在内部调用自身,这就是递归函数。
  • 使用递归函数需要可能会出现栈溢出,通过「尾递归」可以解决潜在的溢出问题
  • 尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式
def fact1(n):
    if n==1:
        return 1
    return n * fact1(n - 1)
# ---------------------------------
def fact2(n):
    return fact_iter(n, 1)

def fact_iter(num, product):
    if num == 1:
        return product
    return fact_iter(num - 1, num * product)

在这里插入图片描述

参数

可变参数

  • 可变参数允许传入0个或任意个参数,可变参数在函数调用时自动组装为一个tuple
def sum_number(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n
    return sum

sum_number(1,2,3,4,5)
sum_number()
try_list=[1,2]
sum_number(*try_list)

在这里插入图片描述

关键字参数

  • 关键字参数允许传入0个或任意个含参数名的参数,并在函数内部自动组装为一个dict
def person(name, age, **kw):
        pass

命名关键字参数

def person(name, age, *, city, job):
    print(name, age, city, job)
  • 传参是可以组合使用:用必选参数、默认参数、可变参数、关键字参数和命名关键字参数;
  • 参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

部分Error

  • 1、调用函数时,如果参数个数不对,Python解释器会自动检查出来,并抛出TypeError
  • 2、内置函数可以检查出参数错误,但是自定义的函数无法检查出参数类型不正确
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值