假期第(3)天

l 每个Python脚本在运行时都有一个"__name__"属性
l 如果脚本作为模块被导入,则其"__name__"属性的值被自动
设置为模块名
l 如果脚本独立运行,则其"__name__"属性值被自动设置为
"__main__"
l 例如,假设文件test.py中只包含下面一行代码:
print(__name__)
在IDLE或命令行提示符环境中直接运行该程序时,结果如下:
__main__
而将该文件作为模块导入时得到如下执行结果:
>>> import test
test
l 在包的每个目录中都必须包含一个__init__.py文件(可
以是空文件),仅用于表示该目录是个包
l __init__.py文件的主要用途是设置__all__变量以及所
包含的包初始化所需的代码。其中__all__变量中定义
的对象可以在使用from …import *时全部正确导入
Python开发环境2
25
5
Python的对象模型-1
l 对象是python语言中最基本的概念,在python中处理
的一切都是对象
l python中有许多内置对象可供编程者使用,内置对象
可直接使用,如数字、字符串、列表等
l 非内置对象需要导入模块才能使用,如正弦函数
sin(x),随机数产生函数random( )等
对象模型与变量
对象类型 类型名称
示例
简要说明
数字
int
float
complex
1234
3.14, 1.3e5
3+4j
数字大小没有限制,内置支持复数及其运算
字符串
str
'swfu', "I'm student", '''Python ''',
r'abc', R'bcd'
使用单引号、双引号、三引号作为定界符,以字母r
或R引导的表示原始字符串
字节串
bytes
b'hello world'
以字母b引导,可以使用单引号、双引号、三引号作
为定界符,仅限于ASCII字符
列表
list
[1, 2, 3]
['a', 'b', ['c', 2]]
所有元素放在一对方括号中,元素之间使用逗号分隔,
其中的元素可以是任意类型26
2
6
Python的对象模型-2
对象类型
类型名称
示例
简要说明
字典
dict
{1:'food' ,2:'taste', 3:'import'}
所有元素放在一对大括号中,元素之间使用逗号分隔,
元素形式为“键:值”
元组
tuple
(2, -5, 6)
(3,)
不可变,所有元素放在一对圆括号中,元素之间使用
逗号分隔,如果元组中只有一个元素的话,后面的逗
号不能省略
集合
set
frozenset
{'a', 'b', 'c'}
所有元素放在一对大括号中,元素之间使用逗号分隔,
元素不允许重复;另外,set是可变的,而frozenset是不
可变的
布尔型
bool
True, False
逻辑值,关系运算符、成员测试运算符、同一性测试
运算符组成的表达式的值一般为True或False
空类型
NoneType
None
空值
异常
Exception
ValueError
TypeError
Python内置大量异常类,分别对应不同类型的异常
文件
f = open('data.dat', 'rb')
open是Python内置函数,使用指定的模式打开文件,
返回文件对象
其他可迭代
对象
生成器对象、range对象、zip对
象、enumerate对象、map对象、
filter对象等等
具有惰性求值的特点,除range对象之外,其他对象中
的元素只能看一次
编程单元
函数(使用def定义)
类(使用class定义)
模块(类型为module)
类和函数都属于可调用对象,模块用来集中存放函数、
类、常量或其他对象
续表
对象模型与变量2
7
2
7
Python变量-1
l 不需要事先声明变量名及其类型,直接赋值即可创建
l 强类型编程语言,根据赋值或运算来推断变量类型
l 动态类型语言,变量的类型也是可以随时变化的
>>> x = 'Hello world.'
>>> print(type(x))
#内置函数type()用来返回变量类型
<class 'str'>
>>> x = [1,2,3]
>>> print(type(x))
<class 'list'>
>>> isinstance(3, int) #内置函数isinstance()用来测试对象是否为
指定类型的实例
True
对象模型与变量2
8
28
Python变量-2
l 可使用下标来访问并修改列表、字典等可变序列以及
其他自定义对象中的元素
>>> x = 3
#创建整型变量
>>> print(x**2)
#访问变量的值
9
>>> x += 6
#修改变量值
>>> print(x) #读取变量值并输出显示
9
>>> x = [1,2,3] #创建列表对象
>>> print(x)
[1, 2, 3]
>>> x[1] = 5 #修改列表元素值
>>> print(x) #输出显示整个列表
[1, 5, 3]
对象模型与变量2
29
9
Python变量-3
l 字符串和元组属于不可变序列,不能通过下标的方式
来修改其中的元素值,试图修改元组中元素的值时会
抛出异常
>>> x = (1,2,3)
>>> print(x)
(1, 2, 3)
>>> x[1] = 5 #元组是不可变序列,不支持元素值的修改
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
x[1] = 5
TypeError: 'tuple' object does not support item assignment
对象模型与变量3
0
3
0
l Python采用基于值的内存管理方式,不同变量的值相
同且为不大于256的整数时,该值在内存中只有一份
>>> x = 3
>>> id(x)
10417624
>>> y = 3
>>> id(y)
10417624
>>> x = [1, 1, 1, 1]
>>> id(x[0]) == id(x[1])
True
l 小提示:Python变量不直接存储值,而是存储值对象
的引用
Python变量-4
对象模型与变量3
31
1
l 当为变量修改值后其内存地址将会变化,例如:
>>> x = 3
>>> id(x)
1786684560
>>> y = x
>>> id(y)
1786684560
>>> x += 6
>>> id(x)
1786684752
l Python具有自动内存管理功能,对于没有任何变量指
向的值,Python自动将其删除;显式使用del命令删
除不需要的值或显式关闭不再需要访问的资源,仍是
程序员的好习惯
Python变量-5
对象模
与变量
posted @ 2022-01-03 17:33  我的未来姓栗山  阅读(36)  评论(0编辑  收藏  举报