编程的基本概念
python程序的构成
Python程序的构成
python程序是由多个模块组成的,每个模块中含有单/多个语句。
- 一个模块对应一个源文件,一般后缀名为:.py
- 模块由语句组成。运行Python程序时,按照模块中语句的顺序依次执行
- 语句是程序的基本单元,用于创建对象、变量赋值、调用函数、控制语句等
代码的缩进
- Python中“缩进”是强制规定
- 通常采用“四个空格”表示一个缩进
- 常用的编辑器一般:tab制表符就是4个空格
行连接符 \
作用:将一行比较长的程序分为多行
使用:将 \ 行连接符,把它放在行结束的地方,但python解释器会将他们解释为同一行
对象的基本组成和内存示意图
对象
- Python中,一切皆对象
- 每个对象由 标识(identity)、类型(type)、值(value)组成
- 标识:用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可返回对象obj的标识。
- 类型:用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。
- 值:表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。
- 对象的本质:一个内存块,拥有特定的值,支持特定类型的相关操作。
内存
如:a=3 (a是变量,3是对象)
- 栈(stack):存放变量的地址
- 堆(heap):存放对象(id、type、value)
- 通过地址找到对象,通过对象可以查找到它的id、type、value。
引用的本质
引用
- Python中,变量称为:对象的引用。变量中存储的是对象的地址。
- 变量通过地址引用了“对象”
- 变量位于:栈内存(栈依次存放,连续的空间)
- 对象位于:堆内存(堆是乱放,不连续的空间)
- Python是动态类型语言:变量不需要显式声明类型。根据变量引用的对象,Python解释器会自动确定数据类型。
标识符
标识符作用:给 变量、类、模块等起名字
标识符规则
- 区分大小写
- 第一个字符必须是字母、下划线。后面的字符是:字母、数字、下划线
- 不能使用关键字。如:'if'、'or'、'while'等
- 以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法。如:__init__是类的构造函数
Python标识符命名规则
开发中,通常约定俗称遵守如下规则:
类型 |
规则 |
例子 |
模块和包名 |
全小写字母,尽量简单。多个单词之间用下划线 |
math,os,sys |
函数名 |
全小写字母,多个单词之间用下划线隔开 |
phone,my_name |
类名 |
首字母大写,采用驼峰原则。 多个单词时,每个单词第一个字母大写,其余部分小写 |
MyPhone、MyClass、Phone |
常量名 |
全大写字母,多个单词使用下划线隔开 |
SPEED、MAX_SPEED |
变量的声明
变量声明和赋值
删除变量
- 可以通过del语句删除不再使用的变量。
- 如果对象没有变量引用,就会被垃圾回收器回收清空内存空间
常量
链式赋值
链式赋值用于同一个对象赋值给多个变量。如:x=y=123
系列解包赋值
系列数据赋值给对应相同个数的变量(个数必须保持一致)。
如:a,b,c=4,5,6 等价于 a=4;b=5;c=6
使用系列解包赋值实现变量值交换
a,b = 1,2
a,b = b,a #变量值互换
print(a,b)
运算符
算术运算符
- Python支持整数和浮点数对数字做如下运算
运算符 |
说明 |
示例 |
结果 |
+ |
加法 |
3+2 |
5 |
- |
减法 |
30-5 |
25 |
* |
乘法 |
3*6 |
18 |
/ |
浮点数整除法 |
8/2 |
4.0 |
// |
整数除法 |
7//2 |
3 |
% |
模(取余) |
7%4 |
3 |
** |
幂 |
2**3 |
8 |