python中zerodivisionerror是什么意思-python重要知识点(不断更新)

Python简洁优雅,库丰富而强大,特别是在数据分析领域,有着重要的地位。

下面是我学习中总结的一些重要,容易忘记的知识点

一、Python是如何进行内存管理的?

先说明一点,Python每创建一个对象,这个对象都是一个三元组(标识,类型,值)。当我们调用一个对象时一般是按引用传递,

有必要时才按值传递。(按引用不新建对象,按值则会新建对象)

1.引用计数机制

创建对象后,每分配一个名称或将对象放入一个容器时,该对象的引用计数都会增加;

每del一个名称或者引用超出作用域或者被重新赋值时,该对象的引用计数就会减少。

当引用计数归零时,它将被垃圾收集机制处理掉。

2.内存池机制

Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。

Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的 malloc。

其中不同类型的对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享内存池。

二、try…except…except…[else…][finally…]

python先尝试执行try下语句:

若异常,则分别与数个except异常匹配,并执行相匹配的except语句,若都不匹配则异常会传递到最高层try中,最后执行fanally语句;

若无异常,则执行else语句,最后执行fanally语句。

以下示例代码,大家可以试运行下,帮助记忆

1 defexceptTest():2 try:3 print 'doing some work, and maybe exception will be raised'

4 raise IndexError('index error')5 #print 'after exception raise'

6 #return 0

7

8 exceptKeyError, e:9 print 'in KeyError except'

10 printe11 #return 1

12 exceptIndexError, e:13 print 'in IndexError except'

14 printe15 #return 2

16 exceptZeroDivisionError, e:17 print 'in ZeroDivisionError'

18 printe19 #return 3

20 else:21 print 'no exception'

22 return 4

23 finally:24 print 'in finally'

25 #return 5

26

27 resultCode =exceptTest()28 print resultCode

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值