python编程中的基本概念
一、python程序的构成
python程序由模块构成,模块由语句构成,语句是python程序的构造单元。
二、python代码规范
通常四个空格表示一缩进。更具体的说明参见python官方的PEP-8代码风格:
https://www.python.org/dev/peps/pep-0008/
三、python对象
python中一切皆对象,每个对象由:标识(identity)、类型(type)、值(value)构成。
对象的本质:一个内存块,拥有特定的值,支持特定的类型操作。
例如:对于b = 88
它就是一个对象,内存示意图为:
四、python标识符
python标识符用于变量、函数、类、模块等的命名通常有如下规则:
- 严格区分大小写。
- 第一个字符必须是字母或者下划线。其后面的字符是:字母、数字、下划线。
- 不能使用python中的关键字作为标识符。
- 以双下划线开头和结尾的名称通常有特殊含义,应该避免这中写法
python关键字可以通过以下方法查取到:
python标识符约定俗成的命名:
类型 | 规则 | 例子 |
---|---|---|
模块和包名 | 全部为小写字母,尽量简单原则,多个单词之间用下划线隔开 | math ,os ,sys |
函数名 | 全部为小写字母,多个单词之间用下划线隔开 | addfun ,my_python |
类名 | 首字母大写,采用驼峰原则,多个单词,每个单词第一个字母大写其余小写 | MyCar ,MyPhone |
常量名 | 全部为大写字母,多个单词之间用下划线隔开 | SPEED ,MAX_SPEED |
五、删除变量:del
六、垃圾回收机制:变量无引用,会被当做垃圾回收
七、常量:逻辑常量,可修改
八、链式赋值:a = b = 123
九、系列解包赋值:a,b = b,a
;a,b = 1,2
十、最基本内置数据类型(整、浮、布尔、字符串)
十一、最基本运算符(加、减、乘、除divmod()
、幂、取余)
十二、整数
- 三种进制
- 二进制:
0b
或0B
:0 1 - 八进制:
0o
或0O
:0 1 2 3 4 5 6 7 - 十六进制:
0x
或0X
:0 1 2 3 4 5 6 7 8 9 a b c d e f
- 二进制:
int()
的类型转换- 浮点数直接舍去小数部分
- 布尔值
True
或False
转换为1
,0
- 字符串符合整数形式直接转为整数,否则报错
- 自动转型
- 整数和浮点数进行运算结果自动转为浮点数
十三、浮点数(float()
)
十四、增强型赋值运算符
运算符 +
、-
、*
,/
、//
、 **
和 %
和赋值符 =
结合可以构成“增强型赋值运算符
十五、时间的表示
万物皆数
用import time
中的time.time()
获取当前时间,返回的是以秒为单位带微秒的浮点值。
十六、逻辑运算符
运算符 | 格式 | 说明 | 简记 |
---|---|---|---|
or 逻辑或 | x or y | 如果x 为True ,不计算y 直接返回True ;如果x 为False ,则返回y 的值 | 有真则真 |
and 逻辑与 | x and y | 如果x 为True ,则返回y 的值;如果x 为False ,则不计算y 直接返回False | 有假则假 |
not 逻辑非 | not x | 如果x 为True 则返回False ;否则返回True | 取反 |
十七、比较运算符(==
,!=
,>=
,<=
,>
,<
)
十八、位运算符(将数字看作二进制来计算)
运算符 | 描述 | 简记 |
---|---|---|
& | 按位与运算符:参与运算的两个二进制数,如果两个相应位都为1则该位结果为1,否则为0 | 将0看作False 有假则假 |
| | 按位或运算符:参与运算的两个二进制数,如果两个相应位只有一个为1则该位结果为1,否则为0 | 将1看作Ture 有真则真 |
^ | 按位异或运算符:参与运算的两个二进制数,如果两个相应位相异时则该位结果为1,否则为0 | 相异为真为1 |
~ | 按位取反运算符:对数据的每个二进制数进行取反,即把1变为0,把0变为1,~x 类似-x-1 | 相反 |
<< | 左移运算符:对数据的全部二进制数进行左移若干位,高位溢出舍弃,低位不够补0;<< 右边的数指定移动位数 | 左移n位相当于乘2的n次幂 |
>> | 右移运算符:对数据的全部二进制数进行左移若干位;>> 右边的数指定移动位数 | 右移n位相当于除以2的n次幂 |
增强赋值运算符包括位运算符
十九、同一运算符
运算符 | 描述 |
---|---|
is | is 判断两个标识符是否引用同一个对象:实际比较对象的id地址 |
is not | 判断两个标识符是否引用不同的对象:实际比较对象的id地址 |
注意:==
比较两对象的值,而is
比较两对象的地址
二十、整数缓存问题
命令行模式:缓存[-5,256],c语言底层用数组实现,连续分配空间,便于查找。
文件模式:所有数字被缓存,但是[-5,256]仍然用c语言底层数组实现。。
二十一、成员运算符
运算符 | 描述 |
---|---|
in | 在,返回True |
not in | 不在,返回True |
二十二、运算符优先级
- 乘除大于加减
- 位运算符和算术运算符>比较运算符>赋值运算符>逻辑运算符
- 复杂算式不必记清楚运算符优先级数逻辑,直接用小括号组织