Python学习手册(1入门知识-数据类型)

  UNIX env查找技巧

  在一些UNIX系统上,可以用这样一种方法避免硬编码Python解释器的路径,在文件的特定的第一行注释中写上这样一句话。

#! usr/bin/env/ python
...script goes here

   这样写之后,env程序可以通过系统搜索路径的搜索设置(例如,在绝大多数的UNIX Shell中,通过搜索PATH环境变量中罗列的所有目录)定位Python解释器。这种方法可以使得代码具有更高的可移植性,因为没有必要在所有代码的第一行都硬编码Python解释器的安装位置。

  import 和 reload的使用注意事项

  你需要记住当调用reload时候需要使用括号,并且要记住让最新的代码运行时候,首先要使用reload。此外,reload是不可传递的,重载一个模块的话只会重载该模块,而不能够重载该模块导入的任何模块,因此有时候必须reload多个文件。由于这些复杂的地方,从现在开始就要避免使用import和reload启动程序,这是一个好主意。import和reload是Python中常用的测试方法,然而最好还是不要滥用。

  Python的核心数据类型

  对象类型    

  数字类型      整型,长整型,浮点型,复数类型  

  字符串       类似C语言的字符序列

  列表        [1,[2,‘three‘],4]

  字典        {‘food‘:‘Spam‘,‘taste‘:‘yum‘}

  元组        (1,‘Spam‘,4,‘U‘)

  文件        myfile = open(‘eggs‘, ‘r‘)

  集合        set(‘abc‘),{‘a‘,‘b‘,‘c‘}

  其他类型      None,bool

  编程单元类型    函数,模块,类,

  与实现相关的类型  编译的代码堆栈跟踪

  Python的数字类型包含:整数(无限精度),浮点数,十六进制、八进制、二进制,复数,集合,分数类型以及布尔类型和常亮类型。复数类型的虚部由j或J表示,八进制由0o或者0O前缀表示(第一个为zero,第二个为字母O)。

  关于字符串类型见:http://sebug.net/paper/python/ch04s03.html

  元组(tulpe)的不同之处在于,它一旦创建就无法改变。也就是说,元组是不可以改变的序列。与字典和列表一样,元组支持混合类型和嵌套。

  与C/C++不同的地方是,Python中没有switch语句,你可以使用if..elif..else语句来完成同样的工作(在某些场合,使用字典会更加快捷。)而且,Python在while语句中,你可以加入一个else语句!!!这一点跟C/C++也不同。

 

  Python的for循环从根本上不同于C/C++的for循环。C#程序员会注意到Python的for循环与C#中的foreach循环十分类似。Java程序员会注意到它与Java 1.5中的for (int i : IntArray)相似。

  在C/C++中,如果你想要写for (int i = 0; i < 5; i++),那么用Python,你写成for i in range(0,5)。你会注意到,Python的for循环更加简单、明白、不易出错。

  C++中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)。然而,在Python语言中,运算符重载也可以适用于类。

  在Python中,变量的特点有:1变量在它第一次赋值时候被创建。2变量在表达式中使用时将会被替换为他们的值。3变量在表达式使用以前必须已赋值。变量像对象一样不需要再一开始进行声明(这完全不同于C/C++)。

  从技术上来说,默认的交互式回显和打印的区别就相当于内置的repr和str函数的区别:这两个函数都可以把任意对象变换层它们的字符串模式。repr(也就是默认的交互模式回显)产生的结构就好像它们是代码。str(也就是打印语句)转变为一种通常对用户更加友好的格式。

  Python的除法:在Python3.0和Python2.6中除法略有差异,X/Y在Python2.6或之前的版本中,这对操作整数会省掉小数部分,对于浮点数会保持小数部分。在Python3.0版本中,将会变成真除法(一直保留小数部分)。X//Y是 Floor除法,这个操作不用考虑对象的类型,总会省掉结果的小数部分而得到整数部分。

  在Python3.0中,任然使用内置函数来创建集合对象,但是也添加了新的集合常量形式,使用为字典所保留的花括号表示。在Python3.0中 set([1,2,3,4])和{1,2,3,4}是等同的。不管如何创建集合,Python3.0都使用新的常量格式来显示它。在Python3.0中,要创建的空集合或从已有的可迭代对象构建集合,都还是需要用到内置的set函数,但是新的常量便于初始化具有已知结构的集合。

  集合set是强大而灵活的对象,但是在Python3.0和Python2.6之中都有一个限制,我们要铭记,很大程度上市由于其实现,集合只能包含不可变(即可散列)的对象类型。因此,列表和字典不能嵌入到集合当中,但是如果你需要存储复合值的话,元组是一个可嵌入的。在集合操作中使用元组的时候,元组比较完整的值。集合本事也是不可改变的因此不能直接嵌入到其他集合当中。如果需要在另个集合中存储一个集合,可以像调用set一样来调用frozenset。但是它创建一个不可变集合,该集合不可修改并且可以嵌套在其他集合当中。Python3.0中引入集合解析构造,类似于列表解析构造。但是,编写在花括号中而不是方括号中,并且作用于集合而不是列表。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。