Python变量,内存管理,操作符,数字类型

发布于:2022-11-08 ⋅ 阅读:(637) ⋅ 点赞:(0)

简述

语言中最为基础的部分,变量、操作符等。

基本规则与特殊字符

项目 说明
# 其后的字符为python注释
\n 标准的行分隔符(通常一个语句一行)
\ 继续上一行
; 将两个语句连接在一行中
: 将代码块的头和体分开

变量与赋值

类别 说明
变量名 字母(大写、小写字母加下划线_)开头的标识符
—> 变量名大小写敏感
—> 变量类型不需要预先声明,赋值时即被初始化(动态类型语言)
支持增量赋值 n *= 10–>n = n * 10
不支持自增1和自减1操作符
Python的赋值语句不会返回值
支持多重赋值 x = y = z = 1(x,y,z的值都赋值为1)
支持‘多元’赋值 x,y,z=1,2,'a string’分别将右边三个值赋给左边三个变量,类似元组初始化
‘多元’交换 x,y=1,2 x,y=y,x会将x,y的值交换,即结果为x为2,y为1

内存管理

项目 说明 举例
动态类型 对象的类型和内存占用都是运行时确定。变量赋值时,解释器根据右侧操作数决定新对象的类型。对象创建后,一个该对象的引用被赋值给左侧变量
内存分配 无需开发手动进行,python自动进行
引用计数 python内部记录所有使用中的对象各有多少引用,每个对象各有多少个引用即为引用计数。对象被创建时,一个引用计数就被创建,该对象不再需要时其引用计数即变为0,并被垃圾回收
垃圾回收 垃圾收集器为一块独立代码,用来寻找引用计数为0的对象
如下是关于对象与引用关系的示意图:
这里写图片描述

标准算术操作符

如下操作符优先级从低到高排列:

操作符 说明 示例
+ 加法
- 减法
* 乘法
/ 传统除法,两个操作数为整型的话,执行的是地板除,即会取比商小的最大整数 5 / 2的结果为2
// 浮点除法,对结果进行四舍五入,不管操作数是什么类型,浮点除法总是执行真正的除法 5 / 2的结果为3
% 求余,注意在格式化打印中%作为字符串格式操作符 5 % 2的结果为1
** 乘方操作 3 ** 2,3的2次方,结果为9
<< 左移位操作 1 << 1 (结果为2)
>> 右移位操作 2 >> 1 (结果为1)
& 按位与 0xFF & 0x14结果为0x14
^ 按位异或 0xFF ^ 0x01结果为0xFE
| 按位或 0x0F | 0xF0结果为0xFF

标准比较操作符

操作符 说明 示例
< 小于 2 < 4,结果为真
<= 小于等于
> 大于 5 > 4 > 3
>= 大于等于
== 等于
!= 不等于
<> 不等于 此种方式已经逐渐被淘汰

逻辑操作符

操作符 说明 示例
and 与,类似& 2 < 4 and 2 == 4
or
not

基本数字类型

数字类型 符号 举例
有符号整型 int -237, 0x80, -0X92
长整型 long 2998906245L, 0xDECADEDEADBEEFBADEEEDDEAL
布尔值 bool True, False
浮点值 3.14159, 4.2E-10, 6.022e23
复数 6.23 + 1.5j, -1.23-875J

关键字

Python关键字可以用iskeyword()函数来识别是否为关键字:

关键字 说明
and 逻辑与
as **
assert **
break 跳出循环控制
class
continue 跳出循环控制
def 函数定义
del 直接释放资源
elif 条件
else 条件
except 异常处理
exec **
finally 异常处理
for 循环
from **
global **
if 条件
import 导入模块
in 迭代中用到
is **
lambda **
not 逻辑非
or 逻辑或
pass **
print 打印log
raise 异常处理
return 返回值
try 异常处理
while 循环
with **
yield **
None 非关键字常量

专用下划线标识符

标识符 说明
__xxx 不用‘from module import *’导入
_xxx_ 系统定义名字
__xxx 类中的私有变量名

Python中的特别变量

标识符 说明
_doc_ 通过该变量动态获得文档字串。模块、类声明、函数声明中第一个没有赋值的字符串可以用属性obj.__doc__来进行访问
待续 待续

网站公告

今日签到

点亮在社区的每一天
去签到