本篇文章是作者关于在学习了《Python学习手册》以后,分享的学习心得,在此之前,我们先给大家分享一下这本书:
之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读《Python学习手册》。 在前两章节都是对基本的信息做了概述,我们从第三章开始。
import进行模块导入只能运行一次,多次运行需使用reload。
模块往往是变量名的封装,被认为是命名空间。例如:
#myfile.pytitle = "test">>>import myfile>>>print myfile.titletest
替代方案是from,下面有同样的效果:
>>>from myfile import title>>>print tittletest
from myfile import * 则可以把myfile所有变量全部导入(第19章内容)。
虽然字符串支持多种操作,但是它具有不可变性,即原字符串不能改变,只能用新字符串作为结果赋予一个变量。下面是一个试图改变原字符串的操作及报错信息:
>>> s="spam">>> s[0] = 'z'Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: 'str' object does not support item assignment
str和repr显示格式
>>>num = 1/3.0>>>num0.33333333333333331>>>print num333333333333>>>repr(num)'0.33333333333333331' #交互模式回显>>>str(num)'333333333333' #打印语句
浮点数运算在精确方面有缺陷。这和硬件有关,打印结果也不能完全解决。
>>> 0.1+0.1+0.1-0.35.551115123125783e-17>>> print 0.1+0.1+0.1-0.35.55111512313e-17
使用小数对象可以进行修正
>>> from decimal import Decimal>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')Decimal('0.0')
a = 3这个语句实际上执行了三个步骤:创建一个对象代表值3;如果还未创建,创建一个变量a;将变量与新的对象3连接。这时,变量a成为了对象3的一个引用,也可以看做是指针。
类型属于对象,而不是变量,这就很好理解为什么Python中同一个变量名可以作为不同类型的对象的引用了。
在这种机制下,每个对象都有一个引用计数器,当计数器为0时就被系统回收,这便是Python中对象的垃圾收集的方法了。
不同变量引用同一个数字或字符串时,对变量操作(eg.a=3 a=a+2)只是创建了一个新的对象并使它引用新对象,这也是上一章提到的字符串不能改动的原因。而对于一些类型来说,有的操作确实能改变对象,如下所示:
新闻热点
疑难解答