`
friendsys
  • 浏览: 347965 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

简明 Python 笔记

阅读更多
版本较旧 2.34,可能有已被修改的


数值类型:
在Python中有4种类型的数——整数、长整数、浮点数和复数。

2是一个整数的例子。
长整数不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是复数的例子。


字符串类型
' 单引号与"双引号使用完全相同
""" 三个双引号或者'''三个单引号,可以指示一个多行的字符串,其中可以任意使用单引号和双引号

转义符,同Java一样 使用\进行转义 如:"\' " 用于转义单引号,也可以使用\在一行结尾,表示下一行代码从属于第一行代码

自然字符串:
在字符串之前加上r或者R,用于表示字符串中不进行特殊的转义

Unicode字符串.在字符串之前加上u,用于表示非英语语言写的文本

字符串是不可变的--类似Java中的定义

字符串的自动连接: 将两个字符串放置在一起,将会被自动连接,无须使用+进行拼接
如:print 'addd' 'cc'

变量的命名规则:
第一个字符必须以_或者字符,其他部分可以为\w,变量名的大小写是敏感的

声明变量时,不需要定义类型

;不是必须的,建议每行只写一个逻辑行

可以使用 \,() {} [] 达到行连接的效果,也就是将一行的代码写成两行,不过执行效果相同

print \
       i
不过经过测试,发现使用{}时候存在问题.

Python注重使用 空格来缩减代码,得到决定逻辑行执行的效果(块)

运算符描述,按照优先级排序

lambda Lambda表达式
or 布尔“或”
and 布尔“与”
not x 布尔“非”
in,not in 成员测试
is,is not 同一性测试
<,<=,>,>=,!=,== 比较
| 按位或
^ 按位异或
& 按位与
<<,>> 移位
+,- 加法与减法
*,/,% 乘法、除法与取余
+x,-x 正负号
~x 按位翻转
** 指数
x.attribute 属性参考
x[index] 下标
x[index:index] 寻址段
f(arguments...) 函数调用
(experession,...) 绑定或元组显示
[expression,...] 列表显示
{key:datum,...} 字典显示
'expression,...' 字符串转换

可以在适当的地方使用(),使得程序变得易读,不过不可滥用

赋值 =运算符,由右向左运算

控制流语句

if、for和while
没有Java中的Switch,不过可以使用if代替,或者使用字典

if语句的组成
if 条件:... elif 条件:... else:...

while语句的组成
while 条件:....else:...

for循环语句的组成
for x in 序列:...else...

while和for语句中的else都是可选的,如果没有break语句,都会最后执行

break关键字和Java中使用相同,用于退出for和while循环

continue语句和Java中亦相同,用于跳过当前循环块中剩下语句,执行下次循环

函数的定义: 使用def关键字

实参和形参的定义: 函数中定义参数名为形参,提供给函数调用的值为实参

局部变量,在类内部对参数变量的操作,将不会应该外部全局变量的值---描述并不太清晰,类似Java中的局部作用域

也可以使用global声明多个全局变量
global  x,y,z
x,y,z =0,0,0

默认参数值
就是在方法定义时对参数 =号给形参赋值
如: def methods(a,b=1):

注意只有参数列表的末尾才可以进行默认值设置, 就是不允许出现 def methods(a=1,b):的定义

关键参数的使用
就是在方法调用时,使用key=value的方式,给需要的参数赋值,而不要按顺序定义参数.
def func(a, b=5, c=10):
func(c=50, a=100)

return语句
可以用于立即跳出函数,也可以选择从函数返回一个值

pass在Python表示一个空的语句块.没有其他意义

DocString 类似JavaDoc的作用, 注意使用'''..多行字符串进行书写,而不是#注释

查看的命令可以用module.__doc__


模块Module的使用,单独的文件,扩展名必须为.py

为了使输入一个模块更快一些
一种方法是船舰字节编译的文件,以.pyc作为扩展名,它会快的多,另外这些字节编译的文件也是与平台无关的

应该使用import代替from..import语句,使得程序更加易读,也可以避免名称的冲突

__name__属性
每个Python模块都有它的__name__,如果它是'__main__',这说明这个模块被用户单独运行

from mymodule import sayhi, version
可以从指定模块中导入函数,与变量,不过这样并不会加快导入速度,和导入整个模块的效果是相同的,只是编写更方便一些.

数据结构
在Python中有三种内建的数据结构——列表、元组和字典

链表list  []
是处理一组有序项目的数据结构: 列表,内置了很多操作的方法

元组tuple {}
元组和列表十分类似,只不过元组和字符串一样是 不可变的 即你不能修改元组。

声明一个一个元素的元组,需要使用,号 (a,)
元组最通常的用于,用于打印语句中
print '%s is %d years old' % (name, age)

字典 dict类的实力 {}
使用key:value组成的格式,其中key不允许重复
d = {key1 : value1, key2 : value2 }
删除的方式可以用 del d[key1]

序列:列表、元组和字符串都是序列,序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列

可以使用[index]来使用索引(在字典中为key),使用[:]进行切片,
序列的神奇之处在于你可以用相同的方法访问元组、列表和字符串,不包括字典

使用[:]切片,可以获取列表的一个拷贝,用于复制一份其他列表中的对象,不过如果对于序列中包含的是对象,那么拷贝的也是引用,与Java的方法参数一样

更多字符串的内容--内置了需要操作和判断的方法
如: in 判断字符串是否为另外一个字符串的一部分

类中的self等价于java中的this,在class中的方法,都需要该参数,虽然名字不是必须是self,不过建议使用self

使用print class的实例,可以打印出其内存地址

__init__方法用于进行初始化操作(类似java的构造函数),同样方法的第一个参数为self

变量的域,存在两种域: 类的变量与对象的变量

类的变量,由所有的实例所共享,如果修改了类的变量,将会影响到所有的实例
对象的变量,由类实例拥有,每个对象都有自己对这个域的一份拷贝,不是共享的,不会相互影响

定义私有变量,只要在class中定义__开头的变量即可

类的继承
class Teacher(SchoolMember):

注意子类并不会自动调用父类的构造方法(__init__),需要手动进行调用,如果需要


输入/输出

最简单的使用raw_input和print语句来完成这些功能

可以使用help(str) 检查str的方法

打开文件的方式,可以使用open方法,或者file()一个实例,使用的方式与open方法相同,close进行关闭

pickle 存储器,用于将任意Python对象保存到文件中,还有一种cPickle,速度更快一些

另外一种导入的方法,使用 as关键进行命名转换(Groovy中也有类似功能).
import cPickle as p

保存的方法为dump,读取的方法为load

import cPickle as cp

shoplistFile="f:/shop.data"
shoplist=['apple','ibm','ms','sun']
f=file(shoplistFile,'wb')
cp.dump(shoplist, f)
f.close()

del shoplist

f=file(shoplistFile)
storeList=cp.load(f)
f.close

print storeList


异常处理

异常的捕获try:..except:
可以在except后带上具体的异常类型,类似循环一样,try..catch块关联上一个else从句,当没有异常发生的时候,else从句将被执行。同样也有Java中类似的finally语句块

引发异常
错误或异常应该分别是一个Error或Exception类的直接或间接导出类

使用raise 可以抛出异常,
except ShortInputException, x: 可以使用x来捕获异常中的信息,如果为自定义异常,那么x就是异常的实例,可以使用x.属性名访问异常信息

线程的休眠
import time
time.sleep(2) //单位为秒


Python标准库

sys模块:
对于有经验的程序员,sys模块中其他令人感兴趣的项目有sys.stdin、sys.stdout和sys.stderr它们分别对应你的程序的标准输入、标准输出和标准错误流

os模块:
这个模块包含普遍的操作系统功能,使用os.sep可以取代操作系统特定的路径分割符
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.existe()函数用来检验给出的路径是否真地存在。

可以使用help(os) 查看更多信息

特殊的方法,如__init__ __del__等方法,
还有其他的一些方法 如:
如果你想要为你的类使用x[key]这样的索引操作(就像列表和元组一样),那么你只需要实现__getitem__()方法就可以了

一些特殊的方法

名称--说明
__init__(self,...) 这个方法在新建对象恰好要被返回使用之前被调用。
__del__(self) 恰好在对象要被删除之前调用。
__str__(self) 在我们对对象使用print语句或是使用str()的时候调用。
__lt__(self,other) 当使用 小于 运算符(<)的时候调用。类似地,对于所有的运算符(+,>等等)都有特殊的方法。
__getitem__(self,key) 使用x[key]索引操作符的时候调用。
__len__(self) 对序列对象使用内建的len()函数的时候调用。


单语句块 
if True: print 'it'
不使用缩进的模式,不推荐使用

列表综合: 在列表[]中进行for循环的操作
listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]
print listtwo

从函数参数中接受元祖和字典
由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀,多余的参数则会被认为是一个字典的键/值对,注意*需要在**之前

lambda形式
lambda语句被用来创建新的函数对象,并且在运行时返回它们。

如:
def make_repeater(n):
    return lambda s: s*n

twice = make_repeater(2)

print twice('word')
print twice(5)

用于动态生成函数

本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体
注意,即便是print语句也不能用在lambda形式中,只能使用表达式。

exec和eval语句

exec语句用来执行储存在字符串或文件中的Python语句,包括表达式
exec 'print "123"' 注意'' "" 的使用

eval语句用来计算存储在字符串中的有效Python表达式
print eval("2+3") //注意()的使用,调用方法的形式

assert语句,判断条件是否正确,当assert语句失败的时候,会引发一个AssertionError。
如:assert 1!=1

repr函数
repr函数用来取得对象的规范字符串表示。` 反引号(也称转换符)可以完成相同的功能。注意,在大多数时候有eval(repr(object)) == object。

使用~之上的`进行得到



















分享到:
评论

相关推荐

    python简明教程笔记.pdf

    python简明教程笔记.pdf

    马哥python课堂笔记-马哥教育PYTHON相关基础笔记.pdf

    1. **推荐书籍**:学习Python时,有几本经典教材值得参考,包括《Python Cookbook》、《Learn Python the Hard Way》、《Google's Python Class》以及《简明Python教程》。这些书籍覆盖了Python的基础到高级内容,...

    python学习笔记与简明教程

    ### Python学习笔记与简明教程知识点汇总 #### Python 第1课:安装 - **知识点**: - Python 安装包的选择与下载。 - 安装过程中注意事项,如添加环境变量等。 - 验证Python是否安装成功的方法。 #### Python ...

    简明python教程_个人学习笔记.rar

    本教程基于“简明Python教程_个人学习笔记”进行解析,旨在为读者提供全面且易懂的Python知识。 在Python的学习中,首先接触的是基础语法。包括变量的声明与使用,Python支持多种数据类型,如整型(int)、浮点型...

    python简明教程笔记

    Python是一种高级编程语言,以其简洁明了的语法和强大的功能深受程序员喜爱。以下是一些关于Python的基础知识要点: 1. **安装与启动**: Python在Linux系统中通常预装,而Windows用户需要设置环境变量PATH来确保能...

    简明python教程-个人笔记

    【Python解释器与环境设置】 Python编程语言的学习通常从启动解释器开始。在命令行界面,你可以通过输入`python`启动Python解释器。对于Windows用户,确保环境变量PATH已正确配置,这样可以从命令行直接运行Python...

    简明python教程_个人学习笔记.pdf

    在《简明Python教程》中,我们可以看到Python语言的基础知识,包括如何启动解释器、打印输出、基本的数据类型以及字符串的使用方法。 首先,启动Python解释器有两种方式。在命令行下,输入`python`即可启动交互式...

    简明Python(3.1)学习笔记

    #### Python 3.1 学习笔记概览 在本学习笔记中,我们将探讨Python 3.1版本的一些关键特性和与之前版本的主要区别。Python 3.1作为Python 3系列的一个早期版本,相较于Python 2.5有了较大的改进和发展。以下是基于...

    学习简明python教程_个人学习笔记.pdf

    《学习简明Python教程》是一份面向初学者的Python编程指南,旨在帮助读者快速掌握Python基础知识。本教程通过实例和简洁的解释,介绍了Python的基本语法和常用操作。 首先,启动Python解释器是学习Python的第一步。...

    Python学习笔记 (1).doc

    1. **简明Python教程 - 前言与介绍** Python的前言部分通常会介绍其设计哲学,强调代码的可读性和简洁性,以及其跨平台的特性。介绍部分则会讲解Python的历史、版本以及为什么选择学习Python。 2. **简明Python...

    Python基础学习整理笔记

    7. **简明Python教程**和《Learning Python英文版》是全面且深入的教程,适合系统学习,覆盖Python的所有核心特性,包括高级主题如装饰器、上下文管理器等。 8. **Python基础教程(crossin全60课)**:这是一套实战...

    python简明教程笔记.doc

    Python是一种高级编程语言,以其简洁明了的语法和强大的功能而受到广泛的欢迎。这篇文档是对Python编程的基础知识的概述,涵盖了从安装、环境配置到基本语法、数据结构、控制流、函数、模块、类以及文件操作等多个...

    python简明教程笔记 - IT168文库-.doc

    这篇简明教程笔记涵盖了Python的基础知识,包括安装与使用、程序编写、运算符优先级、控制流、函数、模块、数据结构(如列表、元组、字典)、序列、赋值与引用、类以及文件操作。 1. **安装与使用**: Python在...

    python学习笔记与简明教程.docx

    ### Python 学习笔记与简明教程知识点梳理 #### Python 第 1 课:安装 - **Python 安装步骤**: - 访问 Python 官方网站下载最新版本的 Python 安装包。 - 在安装过程中勾选“Add Python to PATH”选项以便在...

    简明python教程_个人学习笔记借鉴.pdf

    【Python解释器与IDLE】 在学习Python编程时,首先需要了解如何启动Python解释器。在命令行界面,输入`python`即可启动Python的交互式解释器。在Windows环境中,确保Python已添加到PATH环境变量,通过命令行输入`...

Global site tag (gtag.js) - Google Analytics