当然这笔记不能作为一本入门教材,如果你还没有对 Python 接触过而直接阅读这本笔记可能有点困难,但若你拥有足够的C、C++、Java 语言基础,那么这本笔记绝对是你快速入门及进阶 Python 的强有力的助手。
本人也是刚走入Python,能力有限,笔记中难免可能有所疏忽,望读者见谅。
Python核心笔记一:欢迎来到Python世界
第三章 Python 基础
特殊规则及特殊字符:
#号(#) : 注释换行(\n) : 换行
反斜线(\) : 继续上一行
分号(;) : 两个语句连在一行
冒号(:) : 将代码块的头和体分开
不同的缩进深度代表不同的代码块
Python 文件以模块的形式组织
多元赋值:x,y,z = 1,2,3 一一对应赋值(建议用小括号扩起来)
变量名必须由字母跟下划线组成,且区分大小写。对于一般的变量名建议不要用下划线开头。
name 系统变量:
- 模块被导入: name 的值为模块的名字
- 模块被直接执行: name 的值为’ main ’
内存管理:
- 变量无须事先申明
- 变量无须指定类型
- 程序员不用担心内存管理
- 变量名会被“回收”
- del 语句能够直接释放资源
第四章 Python 对象
Python 对象的三个特性:身份,类型,值
内建函数type():获取对象的类型None:Python 的 NULL 对象
切片对象:sequence[起始索引: 结束索引:步进值]
标准类型内建函数:
- cmp(obj1, obj2) 比较 obj1 和obj2,返回整形 i(>0;=0;<0)
- repr(obj)或`obj` 返回obj 的字符串表示
- str(obj) 返回obj 适合可读性好的字符串表示
- type(obj) 返回obj 的类型
str(),repr(),`` 三者的比较:
- str():生成一个对象的可读性比较好的字符串表示,对用户友好
- repr():对 Python 比较友好
- ``:效果跟 repr()一样,建议不再使用
type()和 isinstance():
- type(obj):返回 obj 的类型
- isinstance(obj,obj_type):判断 obj 是否为obj_type 类型,返回布尔值
可变类型:列表、字典
不可变类型:数字、字符串、元组
不支持的类型: char 或 byte:无指针:无
int VS short VS long : 无区别
float VS double :无区别
第五章数字
长整型:用大写的“L”标示(虽然也可以用小写的“l”,但不建议使用)
复数:
- 虚数不能单独存在。必须加上 0.0 的实数部分
- 由实数+虚数两部分构成
- 实数跟虚数部分都是浮点型
- 虚数部分后缀是 j 或 J
复数属性:
- num.real 该复数的实数部分
- num.imag 该复数的虚数部分
- num.conjugate() 返回该复数的共轭复数
混合模式优先级(转化): complex > float > long > int
幂运算(**):
- 比左侧操作数的一元运算符优先级低,比右侧操作数的一元运算符优先级高。
- eg: -3 ** 2 = -9 4.0 ** -1.0 = 0.25
位操作符: 只适用于整型
取反(~),安位与(&),或(|),异或(^),左移(<<),右移(>>)
负数当做正数的 2 进制补码处理
num <<( 或 >> )N = num * ( 或 / )2 ** N
int(obj, base) : 返回 obj 数字的 base 进制数
- pow() 和 **:虽然能完成相同的作用
- pow() : 内建函数
- ** : 操作符
数值运算内建函数:
- abs(num) num 的绝对值
- coerce(num1, num2) 转化为同一类型,返回一个元组
- divmod(num1, num2) 返回元组(num1/num2, num1%num2)
- pow(num1, num2, mod=1) 取 num1 的 num2 次方,若有 mod,则对其再取余
- round(flt, ndig=1) 对浮点型 flt 进行四舍五入,保留 ndig 位小数
仅适用于整型的内建函数:
- hex(num) 将 num 转化为十六进制,并以字符串返回
- otc(num) 将 num 转化为八进制,并以字符串返回
- chr(num) 返回 num 的 ASCII 值,范围:0 <= num <= 255
“True”和“False”严格区分大小写!且分别对应“1”和“0”。
第六章序列:字符串、列表和元组
字符串类型同样也是不可变的,当你要改变一个字符串的时候就必须通过创建一个新的同名的字符串来取代它。
三引号(’’’或者”””):
允许一个字符串跨多行,字符串中可以包含换行符,制表符及其他特殊字符。
ASCII 码:每个英文字符都是以 7 位二进制数的方式存放在计算机内,范围是 32~126。
Unicode 通过使用一个或多个字节来表示一个字符的方法突破了 ASCII 的限制,可以表示超过 90000 个字符。
ASCII 字符串– StringType 类型
Unicode 字符串– UnicodeType 类型
默认所有字面上的字符串都是 ASCII 编码,’u’前缀声明 Unicode 编码。
codec 是 Coder/DECoder 的首写字母组合。
Unicode 应用的规则:
- 程序中出现字符串时前面一定要加个’u’
- 不要用 str()函数,用 unicode()代替
- 不要用过时的 string 模块
- 不到必须时不要在你的程序里编解码 Unicode 字符。只在你写入文件或者数据库或者网络时,才调用 encode()编码,相应地,只在你需要把数据读回来的时候才调用 decode()函数解码
- Python 标准库中绝大部分模块都是兼容 Unicode 的,除了 pickle 模块只支持
ASCII。
- Python 字符串不是通过 NUL 或者’\0’来结束的,它除了你定义的东西,没有别的。
并非调用一个方法就会返回一个值。
那些可以改变对象值的可变对象的方法是没有返回值的。如:sort(),extend()等。
列表跟元组是两个非常相似的序列类型,之所以要保留二者是因为在某些情况下,其中一种类型要优于使用另一种类型。
list()跟 tuple()函数可以用一个列表来创建一个元组,反之亦然。