目录
程序的构成
Python程序的构成
- python程序由模块构成。一个模块对应python源文件,一般后缀名为:.py。
- 模块由语句构成。运行python程序时,按照模块中语句的顺序依次执行。
- 语句是python程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等。
Python文件的创建和执行
前面使用的交互式环境,每次只能执行一条语句;为了编写多条语句实现复杂的逻辑,本章开始我们通过创建Python文件,并执行文件。
在IDLE环境中,我们可以通过File new创建Python文件,并可以编辑改文件内容。我们也可以通过File save/save as保存文件。一般保存成扩展名为py的文件。
需要执行编辑好的文件,可以使用快捷键F5或者点击Run Run module。
(注:Ctrl+S一下,形成程序员保存习惯)
代码的组织和缩进
很多编程语言通过字符(例如花括号{})、关键字(例如:begain、end)来划分代码块。同时,再配合代码的缩进增加可读性。“龟叔”设计Python语言时,直接通过缩进来组织代码块。“缩进”,成了Python语法强制的规定。
缩进时,几个空格都是允许的,但是数目必须统一。我们通常使用四个空格表示一个缩进。
同时,也要避免将Tab制表符或者Tab与空格混合的缩进风格。目前,常用的编辑器一般设置成:Tab制表符就是四个空格。
Python官方推荐的PEP-8代码风格详细说明,见下链接:
https://www.python.org/dev/peps/pep-0008/
使用注释#
注释是程序中会被Python解释器忽略的一段文本。程序员可以通过注释记录任意想写的内容,通常是关于代码的说明。
Python中的注释只有单行注释,使用#开始知道行结束的部分。
注释是个好习惯,方便自己方便他人
a=[10,20,30] #生成一个列表对象,变量a引用了这个变量
使用\行连接符
一行程序长度是没有限制的,但是为了可读性强,通常将一行比较长的程序分为多行。这时,我们可以使用"\"行连接符,把它放在行结束的地方。Python解释器仍然将它们解释为同一行。
>>>a=[10,20,30,40,\
50,60,70,\
80,90,100]
>>>a
[10,20,30,40,50,60,70,80,90,100]
>>>a=’abcdefghijklmnopqrstuvwxyz’
>>>b=’abcdefg\
hijklmn\
opqrst\
uvwxyz’
>>>a
对象的基本组成和内存示意图
对象
Python中,一切皆对象。
每个对象是由:标识(identity)、类型(type)、value(值)组成。
- 标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可以返回对象obj的标识。
- 类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。
- 值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。
对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作。
>>>a = 3 #a是一个变量,3是一个对象,
>>>id(3)
1531372336 #3这个对象的地址(标识identity)
>>>type(3)
<class ‘int’> #3这个对象的类型
(注:变量相当于一个标签)
>>>b = ‘我爱你’
>>>id(b)
46806816
>>>ype(b)
<class ‘str’>
引用的本质_栈内存和堆内存_内存示意图
引用
在Python中,变量也成为:对象的引用。因为,变量存储的地址就是对象的地址。变量通过地址引用了对象。
变量位于:栈内存(压栈出栈等细节,后续介绍)
对象位于:堆内存
Python是动态类型语言
变量不需要显式声明类型。根据变量引用的对象,Python解释器将自动确定数据类型。
>>>int a=3;
Python是强类型语言
每个对象都有数据类型,只支持该类型支持的操作。
标识符_帮助系统的简单使用_命名规则
标识符
基本用法
标识符:用于变量、函数、类、模块等的名称。标识符有如下特定的规则:
- 区分大小写。例如LOVE和love是不同的
- 第一个字符必须是字母、下划线。其后的字符是:字母、数字、下划线
- 不能使用关键字。例如:if,or,while等
- 以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法。比如:_init_是类的构造函数
【操作3】使用Python帮助系统查看关键字
help>keywords
False def if raise
None del import return
True elif in try
and else is while
as except lambda with
…………
help>quit #回到交互模式
(注:无须刻意去记关键字,慢慢用的多了就会记住)
Python标识符命名规则
开发中,我们通常约定俗成遵守如下规则:
变量和简单赋值语句
变量的声明和赋值
变量的声明和赋值用于将一个变量绑定到一个对象上,格式如下:
变量名=表达式
最简单的表达式就是字面量。比如:a=123。运行过程中,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象;然后,将这个对象地址赋值给左边的变量。
【操作】变量在使用前必须先被初始化(先被赋值)
>>>my_name
Traceback(most recent call last):
File “<pyshell#17>”,line 1,in <module>
my_name
NameError:name ‘ my_name is not defined
删除变量和垃圾回收机制
可以通过del语句删除不再使用的变量。
【操作55】删除变量实例
>>>del a
>>>a
Traceback(most recent call last):
File “<pyshell#20>”,line 1,in <module>
a
NameError:name ‘a’ is not defined
如果对象没有变量引用,就会被垃圾回收器回收,清空内存空间。
(变量在栈内存,对象在堆内存,删除变量对于对象没有影响)