笨方法学Python:运算符

今天开始进入Python的运算符学习,众所周知,计算机就是人类用来进行复杂运算用的,因此作为计算机语言肯定是有运算符号的,不过不用担心,编程并不需要你在数学方面有很高的造诣,就如《笨方法学Ruby》的作者说的,如果程序员都是数学天才,他们就会去从事数学有关的工作,而不是写出一些毛病百出的Web框架,想着赚够钱买辆跑车了。好了,不说闲话了,赶紧进入学习吧。

Python语言支持以下类型的运算符:

算术运算符

比较(关系)运算符

赋值运算符

逻辑运算符

位运算符

成员运算符

身份运算符

运算符优先级

按照顺序,我们首先来看算术运算符。

1.算术运算符

算术运算符其实就是我们数学中常见的运算符,Python有这些算术运算符:+(加);-(减);*(乘);/(除);%(取模,也就是返回除法的余数);**(幂);//(整除,也就是向下取接近除数的整数)。举例如下:

这些都比较普通,比较特殊在于Python里面,字符串和列表也可以进行运算,举例如下:

运行结果如下:

其实看图也可以知道,所谓的字符串与列表的运算并不是我们数学意义上的运算,其实可以说是拼接和复制(或者说多次打印),因此当你对字符串或者列表进行如下的运算是,就会发现出错了:

Python跟我们说字符串和整型不支持除法运算。(列表也一样,大家可以自己试试)因此,并不需要死记硬背下来到底可不可以,只需要想想之后试一下,就知道到底可以进行哪些运算了。

2.比较运算符

比较运算符有六个,分别是==(等于:比较对象是否相等),!=(不等于:比较两个对象是否不相等),>(大于),=(大于等于),

关于数字之间的比较大家应该都能理解,这里主要提一下字符串与数字的比较,可以看到,虽然同样都是21,但是字符串的21与数字21并不相等,这是因为==判断的是内容与变量类型是否相等,但由于变量a和e为不同变量类型,所以不等,而变量a和d就相等了。

3.赋值运算符

赋值运算符有八个,分别是=,+=,-=,*=,/=,%=,**=,//=,数量虽然很多,但其实可以说是算术运算符的简写,怎么理解呢?看看以下代码你就知道了。

知道为什么我这样说吧,其实a = a+b就等于a+=b(其他等同),赋值运算符就是程序员用来偷懒用的,哈哈。当然,其真正原因还是为了让编写出来的语句显得简洁优雅。这点可能你现在无法体会,可能需要你以后写多了代码才有所体会。

4.位运算符

位运算符是用于二进制运算的,由于涉及的知识点较多且难度较大,因此这里先不做介绍,等以后有接触到才跟大家介绍,大家有兴趣也可以私下去了解一下。

5.逻辑运算符

Python有三个逻辑运算符,分别是and,or,not,用于判断两两对象之间的真假。怎么理解呢?我们先要知道,在Python里,有哪些对象为假,总结如下:

1.False

2.None

3.所有值为零的数

a. 0(整数)

b. 0.0(浮点数)

c. 0L(长整数)

d. 0.0+0.0j(复数)

4.“”(空字符串)

5.[](空列表)

6.()(空元组)

7.{}{空字典}

所以,除去这些以外的对象都是,结合逻辑运算符举个例子:

解释一下吧:第一行a为1,是真,b为2,也是真,第二行a为1,是真,c为,是假,而and的计算原理和数学的和是一样的,就是必须整行代码走完才会得出结果,所以第一行真真就得真,第二行真假就得假。(其实and的运算就是当左边为假,就返回假的值,不是的话就返回右边的值)

而or则是只要出现假就立刻停止运算返回假的值。

not则是返回对象的相反,返回是Ture和False。

(看到这里可能会有点乱,所以大家可以多自己试试,保证能够很熟练掌握)

6. 成员运算符

成员运算符是in和not in,用于字符串,列表或元组,in:如果在指定的序列中找到值返回True,否则返回False;not in:如果在指定的序列中没有找到值返回True,否则返回False。举例如下:

7. 身份运算符

有is和is not两个。is:判断两个标识符是不是引用自一个对象;is not:判断两个标识符是不是引用自不同对象。用代码来理解更加直观:

是不是和你想像得不太一样?没错,和之前的==不同的是,is是通过对象的位置来判断对象是否相等。怎么理解呢?可以借助下面这张图理解:

其实就是对象在Python里面都有一个位置,而身份运算符就可以来判断它们位置是否一致,我们也可以使用id函数来获取对象的位置:

可以看出它们三个的位置并不一致。那如何让它们位置一致呢?只需要这样做就可以了:

今天的内容可能比较多,所以就不留作业了,希望大家可以多看几遍并自己亲自动手试试,实在不懂的话可以在文章里面留言,小编会抽空回复大家的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181211G1N1UK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券