Python简明教程阅后笔记

#Python简明教程阅后笔记

在看完Python简明教程后,就做了一个笔记,记录自己所学的一些内容,以后在学习的过程中还会一直记录,这样自己也可以随时看看,以便加深记忆!

1、根据操作数据的函数或语句块来设计程序的,这被称为面向过程的编程。把数据和功能结合起来,用称为对象的东西包裹起来组织程序的方法。这种方法称为面向对象的编程理念。在大多数时候可以使用过程性编程,但是有些时候当想要编写大型程序或是寻求一个更加合适的解决方案的时候,就得使用面向对象的编程技术。

2、在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。

3、如果想要指示某些不需要如转义符那样的特别处理的字符串,那么需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定。例如r"Newlines are indicatedby \n"。

4、字符串是不可变的。创造了一个字符串,就不能再改变它了。

5、不要混合使用制表符和空格来缩进。

6、特殊的变量True和False,这些变量名大写。

7、短路计算x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。

8、在Python中有三种控制流语句——if、for和while。 在Python中没有switch语句。
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
break结束循环。

9、for…in:一个循环语句,它在一序列的对象上递归即逐一使用队列中的每个项目。

10、range返回一个序列的数。这个序列从第一个数开始到第二个数为止。例如,range(1,5)给出序列[1, 2, 3, 4]。默认地,range的步长为1。如果为range提供第三个数,那么它将成为步长。例如,range(1,5,2)给出[1,3]。range 向上延伸到第二个数,即它不包含第二个数。

11、len()函数:获取字符串的长度

12、函数通过def关键字定义。def关键字后跟一个函数的标识符名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。

13、局部变量当在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。这称为变量的作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。所以,当在函数内改变x的值的时候,在主块中定义的x不受影响。

14、global语句:声明该变量为全局变量,可在用户所定义的函数内为一个定义在函数外的变量赋值。
可以使用同一个global语句指定多个全局变量,例如global x, y, z。

15、默认参数值设置
只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。这是因为赋给形参的值是根据位置而赋值的。例如,def func(a, b=5)是有效的,但是def func(a=5, b)是无效的。

16、return语句用来从一个函数返回即跳出函数。我们也可选从函数返回一个值 。

17、pass语句在Python中表示一个空的语句块。

18、DocStrings文档字符串
在函数的第一个逻辑行的字符串是这个函数的文档字符串 。注意,DocStrings也适用于模块和类。文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。
Python简明教程阅后笔记

19、模块当一个模块被第一次输入的时候,这个模块的主块将被运行。
使用sys模块:利用import输入sys模块,sys模块包含了与Python解释器和它的环境有关的函数。sys.stdin、sys.stdout和sys.stderr分别对应程序的标准输入、标准输出和标准错误流。
from …import语句:如果想要直接输入argv变量到程序中(避免在每次使用它时打sys.),那么可以使用from sys import argv语句。如果想要输入所有sys模块使用的名字,那么可以使用from sys import *语句。这对于所有模块都适用。
一般说来,应该避免使用from …import而使用import语句,因为这样可以使你的程序更加易读,也可以避免名称的冲突。字节编译的文件 ,这些文件以.pyc作为扩展名。
模块的__name__每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。每个Python模块都有它的__name__,如果它是’main’,这说明这个模块被用户单独运行,我们可以进行相应的恰当操作。

20、dir()函数使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。

21、在Python中有三种内建的数据结构——列表、元组和字典。
(1)列表list:可变的数据类型标志:方括号[ ],可以添加、删除或是搜索列表中的项目。
(2)元组:元组和字符串一样是不可变的,即不能修改元组。
元组通过圆括号中用逗号分割的项目定义。( ,)
含有0个或1个项目的元组。一个空的元组由一对空的圆括号组成,如myempty = ()。然而,含有单个元素的元组就不那么简单了。你必须在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对象。即如果想要的是一个包含项目2的元组的时候,应该指明singleton = (2 , )。
元组最通常的用法是用在打印语句中。
Python简明教程阅后笔记
(3)字典:dict类的实例/对象
字典类似于通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
只能使用不可变的对象(比如字符串)来作为字典的键,但是可以把不可变或可变的对象作为字典的值。基本说来就是,应该只使用简单的对象作为键。
键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。它键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。字典中的键/值对是没有顺序的,如果想要一个特定的顺序,那么应该在使用前自己对它们排序。

22、序列
列表、元组和字符串都是序列,序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。
索引可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素,而shoplist[-2]抓取序列的倒数第二个项目。
切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。这与索引操作符十分相似。数是可选的,而冒号是必须的。切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。注意,返回的序列从开始位置开始 ,刚好在结束位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。shoplist[:]返回整个序列的拷贝。也可以用负数做切片,负数用在从序列尾开始计算的位置。

23、如果要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单对象 ),那么必须使用切片操作符来取得拷贝。如果只是想要使用另一个变量名,两个名称都引用同一个对象,那么如果不小心的话,可能会引来各种麻烦。
Python简明教程阅后笔记

24、字符串str.startwith(’’):用来测试字符串是否以给定字符串开始。
in操作符:用来检验一个给定字符串是否为另一个字符串的一部分。
str.find(’’):用来找出给定字符串在另一个字符串中的位置,或者返回-1以表示找不到子字符串。
目前的日期和时间,使用time.strftime()函数获得。

25、类使用class关键字创建。类的域和方法被列在一个缩进块中。类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。

26、__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对对象做初始化 。

27、继承面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。Python总是首先查找对应类型的方法,如果它不能在导出类中找到对应的方法,它才开始到基本类中逐个查找。

28、文件可以通过创建一个file类的对象来打开一个文件,分别使用file类的read、readline或write方法来恰当地读写文件。对文件的读写能力依赖于在打开文件时指定的模式。最后,当完成对文件操作的时候,调用close方法来告诉Python我们完成了对文件的使用。使用readline方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。

29、储存器pickle模块(持久的存储对象):使用它可以在一个文件中储存任何Python对象,之后又可以把它完整无缺地取出来。cPickle模块功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍)。

30、OS模块包含普遍的操作系统功能。如果希望程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。
● os.name字符串指示正在使用的平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。
● os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
● os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
● os.listdir()返回指定目录下的所有文件和目录名。
● os.remove()函数用来删除一个文件。
● os.system()函数用来运行shell命令。
● os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’。● os.path.split()函数返回一个路径的目录名和文件名。● os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。类似地,os.path.exists()函数用来检验给出的路径是否真地存在。

31、当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。