Python入门:深刻理解Python中的变量和赋值

2022-12-16 0 832

社会公众号:尤而小木屋

译者:Peter

撰稿:Peter

我们好,我是Peter~

那时给我们增添的是一则有关Python表达式与表达式的该文。

只不过Python中的表达式句子她们在以后的自学操作过程早已碰触了许多,比如说a=1,是将值1表达式给表达式a。

在正式宣布如是说表达式句子以后,她们先介绍下Python中的表达式难题。

Python入门:深刻理解Python中的变量和赋值

自然环境

有听众充分反映提议Peter写出该文的自然环境,这就来了:

控制系统:MacOS辅助工具:jupyter notebookPython版:3.7.5文件格式GUI:Typora

表达式

体认表达式的物理地址

表达式能说是两个存放统计数据的罐子。Python中在表述表达式的这时候,不须要新闻稿表达式。当她们首度为表达式表达式的这时候,会手动建立表达式并选定类别。

表达式这类是没类别的,而已第一类(表达式的统计数据)有类别

a = 66 a 66 b = 66 b 66 type(a) # 查阅值类别为authint int type(b) # 数组类别 int

她们表述了三个表达式a和b,它都是位数66。虽然中文名称相同,但在计算机控制系统中它却代表者的是同一原素,看一看她们的物理地址。

就比方说:孙悟空(值66)那个人,她们能称作“二师兄”(放到表达式a),也能称作“天燕座”(放到表达式b),但其本质上她们都是指孙悟空,而已换了部分名,其本质完全相同

id(a) # a和b的物理地址完全相同 4387310752 id(b) 4387310752
Python入门:深刻理解Python中的变量和赋值

她们再表述两个表达式的表达式看一看:

a = 77 a 77 id(a) 4387311104
Python入门:深刻理解Python中的变量和赋值

她们看到,以后她们把值66表达式给表达式a,物理地址是4430785696,然后她们又把值77表达式为表达式a,物理地址变成了4430786048。

为什么?只不过,这两值66和77其本质上在计算机控制系统是三个第一类,只不过它刚好有个完全相同的名字而已。比方说说,西游记有个情节:真假美猴王

真美猴王(值66)和假美猴王(值77)尽管都被称为猴子(标签a),但她们实际上是两只相同的猴子呀(分配了相同的地址)~假的最后不还是被如来给收服啦!

建立表达式

通过表达式句子来实现表达式的建立

x = 99 # 值型 language = “python” # 数组型 number = [1,3,5,7,9] # 列表型 print(x) print(language) print(number) 99 python [1, 3, 5, 7, 9]

表达式中文名称命名规则

python中表达式的命名能使用短中文名称,比如说上面的x、y、z、a、b等,也能使用具有一定描述作用的中文名称,比如说age、name、sex,其他人看到就能知道表达式的含义。通常Python中的表达式命名规则:

表达式名必须以字母或下划线字符开头,不能以位数开头表达式名只能包含字母位数字符和下划线(A-z、0-9 和 _)表达式中文名称区分大小写(name、Name 和 NAME 是三个相同的表达式)表达式名不能和Python中的关键字冲突(完全相同),否则无效

下面她们看一看Python中常见的表达式方法

表达式句子

常规表达式

表达式:将Python的某个统计数据第一类贴在某个表达式上,好像给那个第一类贴上了两个标签。Python 使用等号=作为表达式运算符,具体格式为:

name = value # 表达式 = 某个值 list1 = [“python”,”java”] # 列表表达式给表达式b list1 [python, java] list2 = [1,2,[“python”,”html”],(1,4,7)] # 嵌套列表 list2 [1, 2, [python, html], (1, 4, 7)] age = 28 # 值 age 28 information = “xiaoming is a boy” # 数组 information xiaoming is a boy # 表述两个表达式dic,字典类别 dic = {“name”:”xiaoming”,”age”:20,”sex”:”fale”} dic {name: xiaoming, age: 20, sex: fale}

多表达式表达式

同时表达式3个表达式

m, n, o= 22, “xiaoming”,”男” # 同时表达式3个表达式 m 22 n xiaoming o 男

上面的例子表示22表达式给m,数组第一类”xiaoming”表达式给n,”男”表达式给表达式o

name, age = (“Peter”,20) # 通过元组形式表达式 name Peter age 20

上面的例子通过Python元组的形式进行了链式表达式

链式表达式

x1 = y1 = 33 x1 33 y1 33

在上面的例子中她们通过链式表达式同时表述了三个表达式x1和y1。其实它在内存中是同一第一类,通过id查阅物理地址:

id(x1) 4387309696 id(y1) 4387309696

只不过是同一python第一类贴上了相同的标签而已,但其本质完全相同

表达式互换

k, j = 9, 5

上面的表达式表达式等价于:

k=9 j=5 print(“k =”,k) print(“j =”,j) k = 9 j = 5 print(“id(k): “, id(k)) print(“id(j): “, id(j)) id(k): 4387308928 id(j): 4387308800

下面她们交换kj三个表达式的值:

k, j = j, k # 表达式值的交换

上面句子的含义表示为:将表达式j的值(早已表达式了5)再表达式给表达式k;将表达式的值(早已表达式了9)再表达式给表达式j;

print(“k =”,k) print(“j =”,j) k = 5 j = 9
Python入门:深刻理解Python中的变量和赋值
print(“id(k): “, id(k)) print(“id(j): “, id(j)) id(k): 4387308800 id(j): 4387308928

通过对比交换前后三个表达式的物理地址,她们发现:物理地址交换了,也是表达式早已发生了交换

在其他编程语言中实现表达式值的交换的操作是(假设早已表述了三个表达式a和b):

temp = a # a表达式中间表达式temp a = b # b的值赋给表达式a b = temp # temp的值赋给表达式b

表达式的相等和完全相同

首先,必须新闻稿的是Python中表达式的相等和完全相同,是相同的三个概念,举例子说明

number1 = 88 number2 = 88 id(number1) 4387311456 id(number2) 4387311456

判断三个表达式是否相等:使用==

number1 == number2 True

判断三个表达式是否完全相同:使用is

number1 is number2 True

结果都是True,说明number1和number2三个表达式是同一第一类

list1 = “hello python” list2 = “hello python” list1 == list2 # 相等 True list1 is list2 # 不完全相同 False

上面的结果表明:list1和list2是相等,但不完全相同。

id(list1) 4444494000 id(list2) 4444495024

通过查阅二者的物理地址发现:它的地址真的相同,所以肯定是不完全相同的三个第一类。

她们再看最后两个情况:

number3 = 1000 number4 = 1000 number3 == number4 # 相等 True number3 is number4 # 居然不相等啦! False

她们查阅下二者的物理地址,发现它的地址真的相同,所以肯定不是同一第一类啦~

id(number3) 4444408880 id(number4) 4444409104

这到底是为什么呢?以后揭晓~

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务