《A Byte of Python》笔记

基础知识

数:在Python中有4种类型的数——整数、长整数、浮点数和复数
字符串:单引号,双引号,三引号(指示一个多行的字符串,自由使用单引号和双引号)
自然字符串:前缀r或R;Unicode字符串:前缀u
标识符:大小写敏感
一个物理行中使用多个逻辑行:分号;明确的行连接:斜杠
缩进:单个制表符 或 两个或四个空格,保持一贯
运算符:* 可重复字符串;** 幂;// 取整除;not, and, or 结合规律:通常由左向右

 

控制流

if语句:if : elif : else :语句,每个后面加冒号
while语句:while : else:
for循环:for in : else:
break语句:从for或while循环中break,任何对应的循环else块将不执行
continue语句:跳过当前循环块中的剩余语句,然后继续进行下一轮循环

 

函数

定义函数:def 函数标识符 :
global语句:使用定义在函数外的变量
默认参数:只有在形参表末尾的那些参数可以有默认参数值
关键参数:通过名字(而不是位置)为参数赋值
None:表示没有任何东西的特殊类型;pass语句:表示一个空的语句块
DocStrings:函数,模块,类的第一个逻辑行的字符串是DocString。文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。使用object.__doc__引用该属性
模块:模块基本上就是一个包含了所有你定义的函数和变量的文件。当一个模块被第一次输入的时候,这个模块的主块将被运行。每个模块都有__name__,如果它是'__main__',这说明这个模块被用户单独运行
import语句:import sys (命令行参数列表从0开始)
字节编译的文件:.pyc文件
from..import语句:from sys import argv #直接输入argv变量; from sys import * #直接输入所有名字
dir()函数:列出模块定义的标识符。标识符有函数、类和变量。使用del删除变量、名称

数据结构
列表:shoplist = ['apple', 'mango', 'carrot', 'banana'](删除列表元素 del shoplist[0])
元组:不可变,通过圆括号中用逗号分割的项目定义。(print '%s is %d years old' % (name, age))
字典:d = {key1 : value1, key2 : value2 }
序列:列表、元组和字符串都是序列。Indexing:shoplist[0]; Slicing: shoplist[1:-1],不指定数值,则默认序列首或序列尾。序列的序号可以为负数,位置是从序列尾开始计算的。
参考:名称到对象的绑定。使用slicing操作符来建立序列的拷贝。

面向对象编程
self:类方法额外的第一个参数名称
类:class 类名 : def 类方法 : def __init__(self, name): #类似于constructor,注意__del__方法与 destructor 的概念类似
类与对象的变量:Python中所有的类成员(包括数据成员)都是公共的,数据成员名称以双下划线前缀,则作为私有变量。惯例,如果某个变量只想在类或对象中使用,就应该以单下划线前缀。
继承:class 子类(基类):  注意Python不会自动调用基本类的constructor,必须亲自专门调用它。

输入/输出
raw_input和print语句, file类, print line, # Notice comma to avoid automatic newline added by Python
cPickle和pickle模块: 在一个文件中储存任何Python对象 (import..as语法,使用更短的模块名称)

异常
try: except EOFError: except: (关联上一个else从句。当没有异常发生的时候,else从句将被执行。)
使用raise语句引发异常,Error或Exception类的直接或间接导出类 except ShortInputException, x: (错误类和用来表示错误/异常对象的变量)
注意,在一个try块下,可以同时使用except从句和finally块.

Python标准库
sys模块: sys.argv, sys.stdin、sys.stdout和sys.stderr
os模块

特殊的方法
__str__(self), __lt__(self,other), __getitem__(self,key),__len__(self)
列表综合: listtwo = [2*i for i in listone if i > 2]
使函数接收元组或字典形式的参数: 使用*(所有多余的函数参数都会作为一个元组)和**前缀(多余的参数则会被认为是一个字典的键/值对)
lambda语句: lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。return lambda s: s*n
exec和eval语句:exec语句用来执行储存在字符串或文件中的Python语句(exec 'print "Hello World"'); eval语句用来计算存储在字符串中的有效Python表达式(eval('2*3'))
assert语句: 声明某个条件是真的
repr函数: repr函数(eval(repr(object)) == object)和反引号(`i`)用来获取对象的可打印的表示形式。可以通过定义类的__repr__方法来控制对象在被repr函数调用的时候返回的内容。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值