1 / 16
文档名称:

Python个人笔记.pdf

格式:pdf   大小:711KB   页数:16页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Python个人笔记.pdf

上传人:花开花落 2023/3/21 文件大小:711 KB

下载得到文件列表

Python个人笔记.pdf

文档介绍

文档介绍:该【Python个人笔记 】是由【花开花落】上传分享,文档一共【16】页,该文档可以免费在线阅读,需要了解更多关于【Python个人笔记 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
Python

1)Python是大小写敏感
2)注释
注释不仅可以用来解释临近的代码,还可以组织代码的运行。一个很好的

任何在#符号右面的内容都是注释.
Python至少应当有第一行那样的特殊形式的注释。它被称作组织行
——源文件的头两个字符是#!,后面跟着一个程序。这行告诉你的
Linux/Unix系统当你执行你的程序的时候,它应该运行哪个解释器。
3)在Python中有4种类型的数——整数、长整数、浮点数和复数。

1)可以用bool函数来决定任何Python对象的布尔值
bool(x):当且仅当x=0时,返回False
bool(None)返回Fasle
bool([None,0])返回True
bool([0,0])返回True

1)Python有两个主要的数值类型:int(整数)和float(浮点数)。【老
版本中的整数类型long现在已经被合并到了int】
2)另外,还有一个Decimal,但不是内置类型,必须通过decimal模块
访问,它的范围比较小,但是更精确。
3)内置数据类型int:带符号整数(没有大小限制)
4)内置数据类型float:双精度浮点数
5)内置数据类型complex:复数(实部+虚部)

1)单双引号:在双引号中的字符串与单引号中的字符串的使用完全相同。
2)使用三引号(’’’或”””):利用三引号,你可以指示一个多行的字符串。你可
以在三引号中自由的使用单引号和双引号。
3)转义字符:如果你想要指示某些不需要如转义符那样的特别处理的字符串,那
么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来
指定。
4)Unicode字符:
处理Unicode文本——你只需要在字符串前加上前缀u或U。
:.
5)字符串是不可变的
6)按字面意义级连字符串:如果你把两个字符串按字面意义相邻放着,他们会被
Python自动级连。例如,'What\'s''yourname?'会被自动转为"What'syour
name?"。【用“+”效果一样,但效率比较低下。可用方法:
式化操作符%;;,extend方法也可以把另一个
列表的内容加进来(相比list1+=list2,(list2)要好得多)】

1)变量是标识符的例子。标识符是用来标识某样东西的名字。在命名标识符
的时候,你要遵循这些规则:
标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划
线(‘_’)。
标识符名称的其他部分可以由字母(大写或小写)、下划线(‘_’)或数
字(0-9)组成。
标识符名称是对大小写敏感的。
:Python把在程序中用到的任何东西都称为对象。

下面是保存和运行Python程序的标准流程。
1).打开你最喜欢的编辑器。
2).输入例子中的程序代码。
3).用注释中给出的文件名把它保存为一个文件。我按照惯例把所有的Python

4).。你也可以使
用先前介绍的可执行的方法。

1)如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)
来特别地标明这种用法。分号表示一个逻辑行/语句的结束。
2)强烈建议你坚持在每个物理行只写一句逻辑行。
:
1)**(幂运算)
2)/除
3)//求余
4)~按位翻转
5)and布尔“与”
6)or布尔“或”
7)not布尔“非”
:.
8)备注:没有自增/自减运算符(即++,--)
(从最低的优先级(最松散地结合)到最高的优先级(最紧密地结
合)):
运算符描述
lambdaLambda表达式
or布尔“或”
and布尔“与”
notx布尔“非”
in,notin成员测试
is,isnot同一性测试
<,<=,>,>=,!=,比较
==
|按位或
^按位异或
&按位与
<<,>>移位
+,-加法与减法
*,/,%乘法、除法与取余
+x,-x正负号
~x按位翻转
**指数

x[index]下标
x[index:index]寻址段
f(arguments...)函数调用
(experession,...)绑定或元组显示
[expression,...]列表显示
{key:datum,...}字典显示
'expression,...'字符串转换
:在Python中有三种控制流语句——if、for和while。
1)if
#-*-coding:cp936-*-
#Filename:
number=23
grade=int(raw_input('请输入您的成绩:'))
ifgrade>=90:
print'成绩优秀!'
elifgrade>=80:
:.
print'成绩良好!'
elifgrade>=70:
print'成绩合格!'
else:
print'还需要加油哦!'
2)while循环【while语句有一个可选的else从句。】
#-*-coding:cp936-*-
#
number=99
option=True
whileoption:
guess=int(raw_input('请输入一个数字:'))#接受用户的输入
ifnumber==guess:
print'恭喜您!猜中了!'
option=False
else:
print'抱歉,您没有猜中哦!重来吧!'
else:
print'谢谢您的参与!'
3)for循环【for..in是另外一个循环语句,它在一序列的对象上递归即逐一使
用队列中的每个项目】
我们所做的只是提供两个数,range返回一个序列的数。这个序列从第一
个数开始到第二个数为止。例如,range(1,5)给出序列[1,2,3,4]。默认
地,range的步长为1。如果我们为range提供第三个数,那么它将成为
步长。例如,range(1,5,2)给出[1,3]。记住,range向上延伸到第二个数,
即它不包含第二个数。
else部分是可选的。如果包含else,它总是在for循环结束后执行一次,
除非遇到break语句。
4)break语句:如果你从for或while循环中终止,任何对应的循环else块将
不执行。
5)continue语句:continue语句被用来告诉Python跳过当前循环块中的剩余语
句,然后继续进行下一轮循环。

1)函数的定义:defsayHello():
:.
2)定义全局变量:global关键字;可以使用同一个global语句指定多个全局变
量。例如globalx,y,z。
3)pass语句在Python中表示一个空的语句块。
:
1)Python有一个很奇妙的特性,称为文档字符串,它通常被简称为
docstrings。DocStrings是一个重要的工具,由于它帮助你的程序文档更加
简单易懂,你应该尽量使用它。你甚至可以在程序运行的时候,从函数恢复文
档字符串!
2)惯例:文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号
结尾。第二行是空行,从第三行开始是详细的描述。
3)你可以使用__doc__(注意双下划线)调用printMax函数的文档字符串属性
(属于函数的名称)。

1)模块基本上就是一个包含了所有你定义的函数和变量的文件。
2)为了在其他程序中重用模块,。
3)记住,。
4)创建字节编译的文件,。字节编译的文件与
Python变换程序的中间状态有关。当你在下次从别的程序输入这个模块的时
候,.pyc文件是十分有用的——它会快得多,因为一部分输入模块所需的处
理已经完成了。另外,这些字节编译的文件也是与平台无关的。
5)如果你想要直接输入argv变量到你的程序中(避免在每次使用它时打sys.),
那么你可以使用fromsysimportargv语句。如果你想要输入所有sys模块使
用的名字,那么你可以使用fromsysimport*语句。这对于所有模块都适用。
一般说来,应该避免使用from..import而使用import语句,因为这样可以使
你的程序更加易读,也可以避免名称的冲突。
6)每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个
场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个
模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在
它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的
__name__属性完成。
7)dir():
你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类
和变量。
默认地,它返回当前模块的属性列表。
>>>a=5#createanewvariable'a'.
dela,你将无法再使用变量a——它就好像从来没有存在过一样。

:.
1)在Python中有三种内建的数据结构——列表、元组和字典.
2)列表:
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序
列的项目。
而在Python中,你在每个项目之间用逗号分割。
列表中的项目应该包括在方括号中,这样Python就知道你是在指明一个
列表。
一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。
由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类
型是可以被改变的。
常用方法:append(x),insert(x,x),remove(x),pop(),extend(x),sort()
3)元组(tuple):
元组和列表十分类似,只不过元组和字符串一样是不可变的,即你不能
修改元组。
元组通过圆括号中用逗号分割的项目定义。
元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即
被使用的元组的值不会改变。
len函数可以用来获取元组的长度。
含有0个或1个项目的元组。一个空的元组由一对空的圆括号组成,如
myempty=()。然而,含有单个元素的元组就不那么简单了。你必须在第
一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达
式中一个带圆括号的对象。即如果你想要的是一个包含项目2的元组的
时候,你应该指明singleton=(2,)。
元组与打印语句
#!/usr/bin/python
#Filename:
age=22
name='Swaroop'
print'%sis%dyearsold'%(name,age)
print'Whyis%splayingwiththatpython?'%name
4)字典:字典是可变的、无序的、大小可变的键值映射,亦称散列表。
:.
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,
我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,
就像如果有两个人恰巧同名的话,你无法找到正确的信息。
注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你
可以不可变或可变的对象作为字典的值。基本说来就是,你应该只使用简
单的对象作为键。
键值对在字典中以这样的方式标记:d={key1:value1,key2:value2}。
注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括
在花括号中。
记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么
你应该在使用前自己对它们排序。
5)序列
列表、元组和字符串都是序列。
序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以
从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切
片,即一部分序列。
切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用
冒号分割。注意这与你使用的索引操作符十分相似。记住数是可选的,而
冒号是必须的。
切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒
号之后)表示切片到哪里结束。如果不指定第一个数,Python就从序列
首开始。如果没有指定第二个数,则Python会停止在序列尾。注意,返
回的序列从开始位置开始,刚好在结束位置之前结束。
6)参考【个人理解:即引用】
当你创建一个对象并给它赋一个变量的时候,这个变量仅仅参考那个对
象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那
个对象的内存。这被称作名称到对象的绑定。
#!/usr/bin/envpython
#Filename:
print'SimpleAssignment'
shoplist=['apple','mango','carrot','banana']
mylist=shoplist#mylistisjustanothernamepointingtothesame
object!
delshoplist[0]
:.
print'shoplistis',shoplist
print'mylistis',mylist
#noticethatbothshoplistandmylistbothprintthesamelist
without
#the'apple'confirmingthattheypointtothesameobject
print'Copybymakingafullslice'
mylist=shoplist[:]#makeacopybydoingafullslice
delmylist[0]#removefirstitem
print'shoplistis',shoplist
print'mylistis',mylist
#noticethatnowthetwolistsaredifferent
如果你想要复制一个列表或者类似的序列或者其他复杂的对象(不是如整
数那样的简单对象),那么你必须使用切片操作符来取得拷贝。
7)字符串
你在程序中使用的字符串都是str类的对象。
startwith方法是用来测试字符串是否以给定字符串开始。
in操作符用来检验一个给定字符串是否为另一个字符串的一部分。
find方法用来找出给定字符串在另一个字符串中的位置,或者返回-1以表
示找不到子字符串。
str类也有以一个作为分隔符的字符串join序列的项目的整洁的方法,它
返回一个生成的大字符串。
isupper()是否是大写
title()大写每个单词的第一个字母
strip()移除行首行尾的空白符

:
1)简介
对象可以使用普通的属于对象的变量存储数据。
属于一个对象或类的变量被称为域。对象也可以使用属于类的函数来具
有功能。这样的函数被称为类的方法。这些术语帮助我们把它们与孤立的
函数和变量区分开来。域和方法可以合称为类的属性。
域有两种类型——属于每个实例/类的对象或属于类本身。它们分别被称
为实例变量和类变量。
:.
类使用class关键字创建。类的域和方法被列在一个缩进块中。
2)self:
假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用
(arg1,arg2)的时候,这会由Python自
(MyObject,arg1,arg2)——这就是self的原理
3)__init__方法:
__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对
你的对象做一些你希望的初始化。注意,这个名称的开始和结尾都是
双下划线。
__init__方法类似于C++、C#和Java中的constructor。
4)类与对象的方法:
有两种类型的域——类的变量和对象的变量,它们根据是类还是对象
拥有这个变量而区分。
类的变量由一个类的所有对象(实例)共享使用。只有一个类变量的拷
贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有
其他的实例上。
对象的变量由类的每个对象/实例拥有。因此每个对象有自己对这个域的
一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变
量有相同的名称,但是是互不相关的。
Python中所有的类成员(包括数据成员)都是公共的,所有的方法都
是有效的。
只有一个例外:如果你使用的数据成员名称以双下划线前缀比如
__privatevar,Python的名称管理体系会有效地把它作为私有变量。
这样就有一个惯例,如果某个变量只想在类或对象中使用,就应该以单下
划线前缀。而其他的名称都将作为公共的,可以被其他类/对象使用。记
住这只是一个惯例,并不是Python所要求的(与双下划线前缀不同)。
同样,注意__del__方法与destructor的概念类似。
5)举例
#-*-coding:cp936-*-
#Filename:
#成员类基类
classMember:
def__init__(self,name,age):
=name
=age
:.
print'IntinalizedMember:',
deftell(self):
'''Tellmydetails.'''
print'Name:"%s"age:"%s"'%(,),
#老师类继承自成员类
classTeacher(Member):
'''Iamateacher.'''
def__init__(self,name,age,salary):
(self,name,age)
=salary
print'(InitializedTeacher:%s)'%
deftell(self):
(self)
print'Salary:"%d"'%
#学生类继承自成员类
classStudent(Member):
'''Iamastudent'''
def__init__(self,name,age,grade):
(self,name,age)
=grade
print'(InitializedStudent:%s)'%
deftell(self):
(self)
print'Grade:"%d"'%
t=Teacher('X-David',23,9000)
s=Student('J-John',21,89)
members=[t,s]
formenberinmembers:
:.
()

1)读文件:
defread_file(file_name):
f=file(file_name)
whileTrue:
line=()
iflen(line)==0:
break
printline
()
2)写文件:
defwrite_file(context,filname):
fil=file(filname,'w')
(context)
()

1)Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存
任何Python对象,之后你又可以把它完整无缺地取出来。这被称为持久地储
存对象。
2)还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是
用C语言编写的,因此要快得多(比pickle快1000倍)。
3)我们把这两个模块都简称为pickle模块。
4)为了在文件里储存一个对象,首先以写模式打开一个file对象,然后调用储存
器模块的dump函数,把对象储存到打开的文件中。这个过程称为储存。
5)接下来,我们使用pickle模块的load函数的返回来取回对象。这个过程称为取
储存。
#!/usr/bin/python
:.
#Filename:
importcPickleasp
#importpickleasp
shoplistfile=''
#thenameofthefilewherewewillstoretheobject
shoplist=['apple','mango','carrot']
#Writetothefile
f=file(shoplistfile,'w')
(shoplist,f)#dumptheobjecttoafile
()
delshoplist#removetheshoplist
#Readbackfromthestorage
f=file(shoplistfile)
storedlist=(f)
printstoredlist
:
1)try..except
用try..except语句来处理异常。我们把通常的语句放在try-块中,而把我
们的错误处理语句放在except-块中。
except从句可以专门处理单一的错误或异常,或者一组包括在圆括号内
的错误/异常。如果没有给出错误或异常的名称,它会处理所有的错误
和异常。对于每个try从句,至少都有一个相关联的except从句。
如果某个错误或异常没有被处理,默认的Python处理器就会被调用。它
会终止程序的运行,并且打印一个消息。
你还可以让try..catch块关联上一个else从句。当没有异常发生的时候,
else从句将被执行。
2)引发异常
你可以使用raise语句引发异常。你还得指明错误/异常的名称和伴随异
常触发的异常对象。
:.
可以引发的错误或异常应该分别是一个Error或Exception类的直接或间
接导出类。
自定义异常类
#!/usr/bin/python
#Filename:
classShortInputException(Exception):
'''Auser-definedexceptionclass.'''
def__init__(self,length,atleast):
(self)
=length
=atleast
try:
s=raw_input('Entersomething-->')
iflen(s)<3:
raiseShortInputException(len(s),3)
#Otherworkcancontinueasusualhere
exceptEOFError:
print'\nWhydidyoudoanEOFonme?'
exceptShortInputException,x:
print'ShortInputException:Theinputwasoflength%d,\
wasexpectingatleast%d'%(,)
else:
print'Noexceptionwasraised.'
3)try..finally

1)sys
2)os
如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的;
。
。比如对于Windows,它是'nt',
而对于Linux/Unix用户,它是'posix'。
()函数得到当前工作目录,即当前Python脚本工作的目录路径。
:.
()()函数分别用来读取和设置环境变量。
()返回指定目录下的所有文件和目录名。
()函数用来删除一个文件。
()函数用来运行shell命令。
。例如,Windows使用
'\r\n',Linux使用'\n'而Mac使用'\r'。
()函数返回一个路径的目录名和文件名。
>>>('/home/swaroop/byte/code/')
('/home/swaroop/byte/code','')
()()函数分别检验给出的路径是一个文件还是
目录。类似地,()函数用来检验给出的路径是否真地存在。

1)特殊方法
名称说明
__init__(self,...)这个方法在新建对象恰好要被返回使用之前被调用。
__del__(self)恰好在对象要被删除之前调用。
__str__(self)在我们对对象使用print语句或是使用str()的时候调用。
__lt__(self,other)当使用小于运算符(<)的时候调用。类似地,对于所有的
运算符(+,>等等)都有特殊的方