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中引入集合解析构造,类似于列表解析构造。但是,编写在花括号中而不是方括号中,并且作用于集合而不是列表。另外Python字符串还支持分片和索引。。。
Python字符串的特点,Python字符串与C语言不同,没有单个字符这种类型,取而代之的是可以使用一个字符的字符串。严格来说,Python的字符串被划分为不可变序列这一类别,意味着这些字符串包含的字符从左到右的位置顺序,而且它们不可以在原处被修改。除了核心的字符串工具外,Python通过标准库re模块(正则表达式)还支持更高级的基于模式的字符串处理,甚至是xml解析器等。
一个Python新手有时候会像这样使用文件名去尝试打开一个文件: myfile = open('C:\new\text.dat','w')他们认为这将打开一个在C:\new目录下名字为text.dat的文件。问题是这里有"\n"和"\t",它们会被识别为一个换行符号并且"\t"会被一个制表符所替代。解决这个问题的方法是,使用raw字符串。为了避免犯错,记得在Windows中增加字幕r在字符串前面。
Python列表特点:
列表的append方法和 "+"的结构类似,不同的是前者会原地修改列表而后者会生产型的列表。要注意,append和sort会在原地修改列表但是不会返回相关的列表对象,这两者返回值均为None。现在Python也可使用内置函数sorted它可以返回一个新的任何集合,并不只是列表。内置函数sorted有时候sort方法更有效。
Python字典用法:
使用字典的时候,有几点要注意:(1)序列运算无效。字典是映射机制不是序列。字典元素没有顺序概念,类似串联(有序合并)和分片(提取相邻片段)这样的运算是不能用的。(2)对新的索引赋值会添该新的加项。(3)键不一定总是字符串,任何不可变对象(也就是说不是列表)也是可以作为键值的。字典适合用作稀疏的数据结构!
Python元组的用法:
元组和列表非常类似,只不过元组不能再原处修改。虽然元组不支持任何方法调用,但是具有列表的大多数属性。元组是有序对象的集合,与列表相同可以嵌入到任何别的对象中。和列表字符串一样元组通过偏移(而不是键值)来访问。它支持所有基于偏移的操作。类似字符串,元组是不可变的。由于元组是不可变的,在不生成拷贝的情况下不能增长或者缩短,元组可以包含其他复杂类型,因此支持嵌套。
Python学习手册(1入门知识-数据类型)的更多相关文章
- [python学习手册-笔记]002.python核心数据类型
python核心数据类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...
- Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘
Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:g7v1 作者简介 作为全球Python培训界的领军人物,<Python学习手册:第4版>作者M ...
- Python学习手册(第4版)PDF高清完整版免费下载|百度云盘
Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...
- 《Python学习手册 第五版》 -第16章 函数基础
前面的章节讲解的是一些基础数据类型.基本语句使用和一些文档查看的内容,这些都是一些基础,其实还谈不上入门,只有了解了函数,才算入门 函数是编程里面使用最多的也是最基本的程序结构, 本章重点内容 1.函 ...
- [python学习手册-笔记]003.数值类型
003.数值类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- 《Python学习手册》读书笔记
之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...
- 《Python学习手册》读书笔记【转载】
转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...
- 《Python学习手册》(二)
<Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...
- 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」
0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...
随机推荐
- springMVC-自定义数据类型转换器
自定义类型转换器 201603005,今天想了一个问题,Spring中的Conventer是如何实现的,因为他没有绑定类中的属性,它怎么知道要将那个String转换?看了几遍的书也没有找到,后来想想, ...
- bzoj1102: [POI2007]山峰和山谷Grz
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...
- SVN中(trunk tags branches)的使用理解
trunk--主干(永远都是最新的,每发布一个版本会在tags和branches上进行分支) tags-标签(只读,用于存放发布后的文件冻结,以及对应发布后版本的源文件:可以是来自主干或者分支的发布: ...
- roundup配置
原因:我需要一个简单的issue tracker why roundup: python,简单 找了半天的文档,找不到文档,只能自己慢慢试,试到现在,可以打开tracker页面,用户注册的时候可以发邮 ...
- 第一个有点作用的PHP扩展
C/C++去开发PHP扩展 我觉的对于PHP开发人员来说,学的东西非常杂,也非常多,当然了开发PHP扩展也是一个必须要掌握的技能,这里膜拜下大神鸟哥(Laruence)~ 今天要开发的第一个有点功能的 ...
- Linux Command Line Basics
Most of this note comes from the Beginning the Linux Command Line, Second Edition by Sander van Vugt ...
- python使用cookielib库示例分享
Python中cookielib库(python3中为http.cookiejar)为存储和管理cookie提供客户端支持,下面是使用示例 该模块主要功能是提供可存储cookie的对象.使用此模块捕获 ...
- JAVA线程池的分析和使用
1. 引言 合理利用线程池能够带来三个好处.第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗.第二:提高响应速度.当任务到达时,任务可以不需要等到线程创建就能立即执行.第三:提 ...
- Code笔记之:对使用zend加密后的php文件进行解密
对使用zend加密后的php文件进行解密 使用zend加密后的php文件用notpad++打开会出现类似的乱码 下面使用解密工具进行解密 http://pan.baidu.com/s/1i3n4ysX ...
- Mysql学习笔记(四)聊聊数据库索引
小心情(可直接跳到分割线后) 今天心情好些了.一些浓的化不开的坏情绪,也渐渐的在晚上解决掉一个复杂的逻辑问题后,渐渐消散了. 今天中午去吃饭的时候,坤哥漫不经心的说:'我这么多年终于悟出了一个道理,人 ...