第二天的主要内容如下:
1、认识模块
1.1、什么是模块?
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块让你能够有逻辑地组织你的 Python 代码段。
把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
模块能定义函数,类和变量,模块里也能包含可执行的代码。
另外Python 模块又称之为库(库又分为标准库和第三方库,Python 自带的为标准库,需要安装的为第三方库)
模块的使用:
模块定义好后,我们可以使用 import 语句来引入模块,语法如下:
import module1[, module2[,... moduleN]样例: import sys
1.2、编写和使用第三方库:
直接引用编写模块的路径或者将写好的模块文件移动到标准库所在位置,注意模块名称不能和标准库或其他第三方库重名。
2、什么是pyc文件?
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中(PyCodeObject则是Python编译器真正编译成的结果),当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
3、数据类型
3.1、数字:
int(整型)
long(长整型)
float(浮点型)
complex(复数)
3.2、布尔值:
真或假
0或1
3.3、字符串
“Hello World”
PS:字符串是 %s;整数%d;浮点数%f
字符串常用功能:
移除空白
分割
长度
索引
切片
3.4、列表:
创建列表:
name_list
=
[
‘alex‘
,
‘seven‘
,
‘eric‘
]
或
name_list =
list
([
‘alex‘
,
‘seven‘
,
‘eric‘
])
基本操作:
索引
切片
追加
删除
长度
切片
循环
包含
3.5、元组(不可变的列表)
创建元组:
ages
=
(
11
,
22
,
33
,
44
,
55
)
或
ages
=
tuple
((
11
,
22
,
33
,
44
,
55
))
3.6、字典(无序)
创建字典:
person
=
{
"name"
:
"mr.wu"
,
‘age‘
:
18
}
或
person
=
dict
({
"name"
:
"mr.wu"
,
‘age‘
:
18
})
常用操作:
索引
新增
删除
键、值、键值对
循环
长度
4、数据运算:
算数运算:
比较运算:
赋值运算:
逻辑运算:
成员运算:
身份运算:
位运算:
运算符优先级:
5、Bytes:
Bytes 对象是由单个字节作为基本元素(8位,取值范围 0-255)组成的序列,为不可变对象。
Bytes 对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式解码所决定。我们可以通过调用 bytes() 类(没错,它是类,不是函数)生成 bytes 实例,其值形式为 b‘xxxxx‘,其中 ‘xxxxx‘ 为一至多个转义的十六进制字符串(单个 x 的形式为:\xHH,其中 \x 为小写的十六进制转义字符,HH 为二位十六进制数)组成的序列,每个十六进制数代表一个字节(八位二进制数,取值范围 0-255),对于同一个字符串如果采用不同的编码方式生成 bytes 对象,就会形成不同的值:
比如上例中的 a 字符串对象,其十进制 unicode 值为 24464,分别使用 ‘utf-8‘ 和 ‘gb2312‘ 两种编码格式将其转换成 bytes 对象 b 和 c ,结果 b 和 c 的值是完全不同的,由于基于的编码格式不一致, b c 长度甚至都不相同,前者有 3 个字节长度,后者有 2 个字节长度:
另外,对于 ASCII 字符串,可以直接使用 b‘xxxx‘ 赋值创建 bytes 实例,但对于非 ASCII 编码的字符则不能通过这种方式创建 bytes 实例:
由于 bytes 是序列,因此我们可以通过索引或切片访问它的元素:
可以发现如果以单个索引的形式访问元素,其会直接返回单个字节的十进制整数,而以序列片段的形式访问时,则返回相应的十六进制字符序列。
对于 bytes 实例,如果需要还原成相应的字符串,则需要借助内置的解码函数 decode(),借助相应的编码格式解码为正常字符串对象,如果采用错误的编码格式解码,则有可能发生错误: