异常处理、python标准库、函数接收元组和列表

函数的调用时通过栈这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,当递归调用次数过多,会导致栈溢出。

解决递归调用栈溢出的方法是通过尾递归优化。

尾递归是指,在函数返回的时候,调用自身本身。并且return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。

python异常处理

#当程序有错误时,错误处理器将错误的位置打印出来。
import sys
try:#所有可能引发错误的语句放在try块中,在except从句/块中处理所有的错误和异常
	s=input('Enter something-->')
except EOFError: #处理单一的错误和异常
	print('Why did you do an EOF on me')
	sys.exit()
except:#处理所有的错误和异常
	print('Some erroe')
finally:
	print('OK')#异常无论发生与否,都会执行

print('Done')

标准库

import sys
print(sys.argv[0])#当前运行程序的名称,命令行参数
#os模块包含了普遍操作系统功能
##sys模块包含系统对应的功能
import os
name=12
print(os.name)  #nt:代表正在使用的平台是window
print(os.getcwd()) #当前的工作目录
##print(os.putenv()) #设置环境变量
path=os.getcwd()
file=os.listdir(path)#返回指定目录下的所有文件和目录名
print(file)
#os.remove('poem.txt')#删除一个文件
print(os.linesep)
print(os.path.split(path))#('E:\\language\\sublime', 'python') 返回一个路径的目录名和文件名
b1=os.path.isfile(path)#判断路径是否为文件
b2=os.path.isdir(path)#判断路径是否是目录
b3=os.path.exists(path)#检验给出的路径是否真的存在
print(b1,b2,b3)

函数接收元组和列表

#综合列表
listone=[1,2,3,4,5,6,7]
listtwo=[2*i for i in listone if i>2]#原来的列表没有发生变化,综合列表使用精确的方法完成相同的工作
print(listtwo)
#在函数中接收元组和列表,在函数接收元组或字典形式的参数时
def powersum(power,*args):#args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中,
#使用**前缀,多余的参数则会被认为是一个字典的键值对
	total=0
	for i in args:
		total+=pow(i,power)
	return total
res1=powersum(2,3,4)
res2=powersum(2,10)
print(res1,res2)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值