《简明Python教程》这本书是初级的Python入门教材,初级的内容基本覆盖,对高级的内容没有做深入纠结。适合刚接触Python的新手,行文比较简洁轻松,读起来也比较顺畅。下面是我根据各个章节的内容进行的简要归纳,相关代码都已按照章节顺序进行命名。
-
高级语言翻译成机器代码有两种方法:解释和编译。
-
Python介绍
简单、易学、免费、开源、可移植性好、面向对象、可扩展、丰富的库等等
-
Python安装
linux系统:判断是否安装 python -v
Windows系统: 下载软件安装即可
-
最初的步骤
挑选合适的编辑器。\n
#符号右面的内容都是注释
Linux系统下运行:chmod a+x helloworld.py
echo $PATH 来显示PATH变量
help()帮助了解命令含义 q退出
-
基本概念
数:整数、长整数、浮点数和复数。
字符串:""",转义符,Unicode字符。
标识符命名:大小写敏感、字母数字下划线(开头不能有数字)、不能够用Python内置的关键字命名
逻辑行:用;隔开,清晰理解。
-
运算符和表达式
严格来说,逻辑操作符的操作数应该为布尔表达式,但Python对此处理的比较灵活,即使操作数是数字,解释器也把他们当成“表达式”。
非0的数字的布尔值为1,0的布尔值是0。
空字符串为假,非空字符串为真。非零的数为真。
and操作符:只要左边的表达式为真,整个表达式返回的值是右边表达式的值。否则,返回左边表达式的值。
Python中代表false的值有:
- 布尔型,False表示False,其他为True - 整数和浮点数,0表示False,其他为True - 字符串和类字符串类型(包括bytes和unicode),空字符串表示False,其他为True(注:'0'字符串零并不是False) - 序列类型(包括tuple,list,dict,set等),空表示False,非空表示True - None永远表示False >>> print '' or 5 or 0 5 >>> print 5 and 4 4
or操作符的规则是:只要两边的表达式都为真,整个表达式的结果是左边表达式的值;如果是一真一假,返回真值表达式的值。
特别注意的是空值和0的情况,这时候返回的是右边的0或空值:
位运算 左移、右移、位与、位或、位异或
运算符优先级
-
控制流
if、while、for、break、continue
-
函数
形参与实参。调用函数时,实参值赋给形参。
局部变量:函数内部定义的变量与外部完全没有关系。产生效果的区域成为局部作用域。
全局变量:定义全局变量。在函数内部使用global语句。(不推荐)
默认参数值:def func(a, b=5)是有效的,但是def func(a=5, b)是 无效的。
关键参数:我们可以只给我们想要的那些参数赋值。
return语句:没有返回值的return语句等价于return None。None是Python中表示没有任何东西的特殊类型。
文档字符串:方便程序的阅读理解。
-
模块
sys模块:sys模块包含了与Python解释器和它的环境有关的函数。
.pyc文件: 字节编译的文件 ,这些文件以.pyc作为扩展名。
from..import语句: from sys import argv语句。
模块的__name__:获取模块的名称。__main__为当前程序。
制造你自己的模块:记住这个模块应该被放置在我们输入它的程序的同一个目录中,或者在sys.path所列目录之一。
dir():内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。
-
数据结构
字符串:
split函数的另外一个参数是规定作为分隔符的字符串。分隔符不显示在列表中。 >>> string.split(song, 'ai') ['The r', 'n in Sp', 'n...'] 函数jion的功能和split正好相反,它是将列表连接成字符串。默认的分 隔符是空格。 >>> list = ['The', 'rain', 'in', 'Spain...'] >>> string.join(list) 'The rain in Spain...'
列表:len(list)、list.append、list.sort、del list[0]
元组:元组和字符串一样是不可变的,即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。
字典:它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。
赋值:d[key]= value 删除:del d[key] 迭代出每一项:for name,address in ab.items():
序列:列表、元组、字符串都属于序列。序列的两个特点:索引操作符和切片操作符。
引用:当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 引用 那个对象,而不是表示这个对象本身! 字符串方法: in操作符用来检验一个给定字符串是否为另一个字符串的一部分。 find方法用来找出给定字符串在另一个字符串中的位置,或者返回-1以表示找不到子字符串。 str类也有以一个作为分隔符的字符串join序列的项目的整洁的方法,它返回一个生成的大字符串。 append在列表的尾部追加元素,参数是插入元素的值。方法extend合并两个列表为一个。
-
面向对象编程
self:类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。
__init__方法: __init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的初始化 。
类与对象的方法:类的变量 由一个类的所有对象(实例)共享使用。对象的变量 由类的每个对象/实例拥有。
继承:基本类的__init__方法专门使用self变量调用。
-
输入输出
模式可以为读模式('r')、写模式('w')或追加模式('a')。
使用file类的write方法来写文件,最后我们用close关闭这个文件。
使用readline方法读文件的每一行。
存储与去存储没看懂。
-
异常
用try..except语句来处理异常。
用raise来引发异常。
try...finally异常发生后有语句仍然执行。
-
python标准库
sys模块、os模块。
-
更多python内容
init(self, ...)、del(self)、str(self)、lt(self, other)、getitem(self, key)、len(self)
列表生成式、单语句块、lambda语句
exec语句用来执行储存在字符串或文件中的Python语句: >>> exec 'print "Hello World"
eval语句用来计算存储在字符串中的有效Python表达式。 >>> eval('2*3')
assert语句用来声明某个条件是真的。当assert语句失败的时候,会引发一个AssertionError。
repr函数