前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python变量和运算符

Python变量和运算符

作者头像
stormwen
发布2019-08-05 10:31:51
6410
发布2019-08-05 10:31:51
举报
文章被收录于专栏:公众号:googpy公众号:googpy

1.变量

我们首先要明确变量命名规则:

变量名首字符不能是数字,变量名只能用字母、数字、下划线命名,系统保留关键字不能用在变量名中。

type不是系统保留关键字,但是也不建议将其用作变量名,大家知道为什么吗?

比如:type=1,type(1)就会报错。所以说如果用type作变量名,就会引起后续错误。

2.引用类型可变,值类型不可变

比如:a=1

b=a

a=3

print(b)大家猜猜这个结果是什么?可能一些小伙伴会先入为主,觉得结果是3,其实是1,我来分析一下这段代码的过程。

根据上图,大家可以很直观的看出,最后的结果是1,这就是值(int)类型,这种类型还有字符串(str)、元组(tuple)都是不可变的。

下面再举一个引用类型可变的例子

比如:a=[1,2,3,4,5]

b=a

a[0]=’1’

print(a)大家猜猜这个结果又是什么?大家可以把这段代码复制到编辑器中自己验证一下结果,同样的,我们还是用图示的方法分析一下。

所以,我们根据上图可以看出最后的结果[‘1’,2,3,4,5],这种类型的还有列表(list)、集合(set)、字典(dict)。

3.运算符号

我把运算符号的类型总结成一张下面的思维导图。

大家没必要记住每一个运算符号,用到什么符号时,就去查运算符号手册,多查几遍就会记住的,学习就是这个样子,不断的重复,才能记住某个知识点。下面我想把自己觉得重要的几类运算符拿出来和大家聊聊。

(1)、比较运算符

不只是数字才能做比较运算,比如字符串也可以做比较

‘a’>’b’ 这个会输出False,大家可以这样理解,我们可以用ord函数看看两个字符串的ASII码,ord(‘a’)=97;ord(‘b’)=98,所以结果肯定就是False。

(2)、逻辑运算符

在这个部分,我们看一下not(非)的一个规则——我们说非零被认为True。比如,对于字符串,not’ ’会输出True,对于列表、元组、集合以及字典同样遵循这一规则。

and、or的返回规律

1 and 0 结果是0;而0 and 1 结果也是0

这个就涉及到计算机解析代码的一个过程,给打击举一个形象的例子,便于大家理解。就好比有两个箱子叠放在一起,那么对于前者,计算机在解码的时候通过取「1」这个箱子,不能决定最终的结果,所以最终的结果由0决定;而对于后者由于0已经可以决定最后的结果,计算机也是会偷懒的,所以就省去了后面的过程。

同理,我们也可以用这个事例解释下面的例子

0 or 1会输出1,1 or 0则会输出1

所以,对于and和or的返回值到底是什么,大家要去理解,而不是死记硬背。

(3)、身份运算符,返回的也是布尔值

如果两个变量取值相等,则is返回True,那么大家思考一下「is」和比较运算符的「==」有什么区别?

关系运算符「==」比较的是两个变量的值是否相等,而「is」比较的是两个变量的身份是否相等。我们举个例子来理解一下这个规则。

a=1

b=1.0

a==b根据上面的规则就会返回True,而a is b则会返回False,大家可以用id函数查看两个变量的内存地址,就会理解的。

(4)、位运算符

需要提醒的是按位与「&」和按位或「|」这个符号,同样举例说明

a=2

b=3

a& b则输出2

这个过程我们可以这样理解:

1 0

1 1

1 0

这个运算符的规则是这样的,各个位置各自对比,就有两个都是1才会输出1,否则是0,所以最后的结果是10,再转成十进制,就是2。

a=2

b=3

a | b则输出3

依然可以像上面那样理解,不一样的是规则是:只要有1个1,就是1,所以最终的结果是11,转换后就是3。

今天的分享就到这里了,如果大家觉得有用,点个好看吧。

戳这里交流Python

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 googpy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档