0
点赞
收藏
分享

微信扫一扫

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


简述

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

基本规则与特殊字符

项目

说明

#

其后的字符为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的对象

如下是关于对象与引用关系的示意图:

[Language]Python变量,内存管理,操作符,数字类型_赋值

标准算术操作符

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

操作符

说明

示例

+

加法


-

减法


*

乘法


/

传统除法,两个操作数为整型的话,执行的是地板除,即会取比商小的最大整数

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__来进行访问

待续

待续


举报

相关推荐

0 条评论