c++用一级运算比较大小_【Python基础(六)】运算符的介绍和使用

0c11f223a43ac806f9dcc7b7fd599321.png

因为“众所周知的普适原因”停更了一个星期,每天都手痒痒但无可奈何;废话不多说,以后把知乎作为主平台,好好的输出优质内容,为我们的“年薪百万”添根稻草。


本节对python中的运算符进行介绍。常见的运算符包括赋值运算符、算术运算符、比较运算符、逻辑运算符、成员运算符、位运算符以及身份运算符。本节内容较为简单,并且在我们之前的学习代码示例中也多多少少涉及到了一些,所以理解起来还是较为容易的。

da9ef769cd93255d649905f30ec189fe.png

【赋值运算符】

赋值运算符顾名思义,就是将我们实际需要使用的值赋给我们声明的变量;当然,我们也可以将变量赋值给变量,这意味着两者的内容共用;结合算术运算符还可以实现对赋值运算过程的组合使用。

python中使用“=”号完成简单赋值运算,等号左边是一个对象名,右边是对象所存储的值,在我们学习了基本数据类型后,值就有了更多的可能性,不仅仅是数字和字符串,也包括如列表、字典等复杂结构的值。

counter 

c1933133ebade437fb55bd12ad3ec264.png

我们也可以同时为多个变量赋值,有以下两种方式:

aa, bb, cc = 198, 'hello', {}

print(aa, bb, cc)

h1=h2=h3=198

print(h1, h2, h3)

1fa6344d583becaaa9eed91067f59e6d.png

结合运算符,可以同时执行运算和赋值动作,这在计数、循环处理时可以简化代码,示例如下:

  • +=(加法赋值),c += a 等效于 c = c + a
  • -=(减法赋值),c -= a 等效于 c = c - a
  • *=(乘法赋值),c *= a 等效于 c = c * a
  • /=(除法赋值),c /= a 等效于 c = c / a
  • %=(取模赋值),c %= a 等效于 c = c % a
  • **=(幂赋值),c = a 等效于 c = c**a
  • //=(取整除赋值),c //= a 等效于 c = c // a
  • :=(海象运算符),注:Python3.8 版本新增运算符,可在表达式内部为变量赋值。
a, c = 177, 19

c += a  # 等效于 c = c + a

print(c)

c -= a  # 等效于 c = c - a

print(c)

c *= a  # 等效于 c = c * a

print(c)

c /= a  # 等效于 c = c / a

print(c)

c %= a  # 等效于 c = c % a

print(c)

c **= a  # 等效于 c = c ** a

print(c)

c //= a  # 等效于 c = c // a

46e0b8594f3afd12f8b54a9cc247e91e.png

【算术运算符】

  • 加法(+),示例:5 + 4,结果为9
  • 减法(-),示例:4.3 - 2,结果为2.3
  • 乘法(*),示例:3 * 7,结果为21
  • 除法(/),这种除法将返回一个浮点数,示例:2 / 4 ,结果为0.5
  • 除法(//),这种除法将返回一个整数,示例:2 // 4 ,结果为0
  • 乘方(**),示例:2 ** 5,结果为32
  • 取余(%),示例:17 % 3,结果为2

算术运算符比较简单,就不举例了,小伙们在使用的过程中需要注意以下几点:

(1)在混合计算时,会把整型转换成为浮点数(float);

(2)除法运算符“/”和“//”的区别,前者是返回浮点数(float),后者是返回整数(int);

(3)加号(+)和乘号(*)运算符可以运用在其他对象上,如字符串,实现对象的拼接和复制扩展,没有印象的小伙伴可以回看往期章节。

【比较(关系)运算符】

比较运算符主要用于逻辑条件的判断,比较规则与数学概念上的类似。

  • ==(等于 - 比较对象的值是否相等),示例:(a == b) 返回 False
  • !=(不等于 - 比较两个对象的值是否不相等),示例:(a != b) 返回 True
  • >(大于 - 返回x是否大于y),示例:(a > b) 返回 False
  • <(小于 - 返回x是否小于y),示例:(a < b) 返回 True
  • >=(大于等于 - 返回x是否大于等于y),示例:(a >= b) 返回 False
  • <=(小于等于 - 返回x是否小于等于y),示例:(a <= b) 返回 True
a = 21
b = 10
c = 0

print(a == b)

print(a != b)

print(a > b)

print (a >= b)

print(a <= b)

print(a < b)

在使用比较运算符时,需要注意以下几点:

(1)所有比较运算符的返回值是1和0,1表示真,0表示假;这分别与布尔类型变量True和False等价(注意True和False是关键字并且区分大小写的);

(2)“==”运算符和“!=”运算符都是根据变量的值进行判断的,也就是我们以前比喻的盒子里面的内容相比较;与之相对应的是is和is not关键字,当我们使用这两个关键字的时候,是判断两个变量是否是相同的盒子,也就是说这两个变量名称是否是等价的。

a1 = 21

b1 = 21

list1 = [1, 2, 3]

list2 = [1, 2, 3]

print(a1 == b1)

print(list1 == list2)

print(a1 is b1)

print(list1 is list2)

652bedc13c33d5094f4435a60d426a52.png

【逻辑运算符】

与日常逻辑和其他的语言一样,python中对三种逻辑定义了运算符,即“并且”、“或者”以及“非”,分别用“and”、“or”、“not”表示,他们用于多个条件之间的关系运算。

(1)“and”:布尔概念“与”, 所有条件都为真(True)时返回真(True),否则为假(False);

(2)“or”:布尔概念"或",当有一个条件为真(True)时就返回真(True),所有条件都为假(False)时才返回假(False);

(3)“not”:布尔概念"非",如果条件为真(True),则返回假(False);反之若条件为假(False),则返回真(True)。

我们的例子结合if-else条件判断语句来说明。

a = 20
b = 10
c = 'china'
d = 'china'

if (a > b) and c == d:
    print("all condition is True")
else:
    print("this is a False condition")
    

if (a < b) or c != d:
    print("there is one True condition")
else:
    print("all condition is False")
    
if not (c==d):
    print("c==d is False")
else:
    print("c==d is True")

64ac3cb44b37c8b662723720bbf78e4f.png

可以看到例子中我们有两组条件表达式,每一组表达式的结果我们是清楚的,再通过逻辑运算后,依照运算符的规则得出了新的结果,if-else表达式基于新的结果进行逻辑的判断达到程序流程控制的目的。这里是两组表达式的组合,同理还可以扩展至多个表达式,判断的标准始终是一致的,小伙伴们可以自行尝试。

【成员运算符】

python支持成员运算符,用于判断变量是否在成员里面存在,用法很直接也很简单,直接举例:

  • in:如果在指定的序列中找到值返回 True,否则返回 False
  • not in:如果在指定的序列中没有找到值返回 True,否则返回 False
str1 = 'china'
list1 = ['china', 'love', 'you']
tuple1 = ('china', 'my', 'document')

print('a' in str1)
print(str1 in list1)
print('bye' in tuple1)

6767a34e2c81d217042937b8789467d7.png

例子中被判断对象我们选择了字符串、列表和元组,它们有一个共同点就是支持以索引的方式访问对象。当然,这里并不是说字典和集合对象不能使用成员运算符,那么,这两种类型的对象在作用成员运算符的时候是如何判断的呢?小伙伴们可以运行如下代码进行思考。

dict = {
    "1": 1
}

set1 = set("123")

print("1" in dict)
print(1 in dict)
print("1" in set1)

【位运算符】

按位运算符是把数字转换为二进制来进行计算的,使用位运算符,实际上就是使用算术运算符的二进制等效方式,也许会提高代码运行速度,但并非想象中那么明显。本节内容在实际的编程过程中很少用到,不太感兴趣的小伙伴可以跳过。

假设a=60(二进制编码为:0011 1100),b=13(二进制编码为:0000 1101),具体的规则如下表中所示。

  • %,按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0,示例:
  • |,按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1,示例:(a|b) 输出结果 61 ,二进制解释:0011 1101
  • ^,按位异或运算符:当两对应的二进位相异时,结果为1,示例:(a ^ b) 输出结果 49 ,二进制解释:0011 0001
  • ~,按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1,示例:(~a ) 输出结果 -61 ,二进制解释:1100 0011
  • <<,左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0,示例:a << 2 输出结果 240 ,二进制解释:1111 0000
  • >>,右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数,示例:a >> 2 输出结果 15 ,二进制解释:0000 1111

【运算符优先级】

当各种运算符混用时,就有优先级的问题了,除去使用括号改变优先级的方式,各运算符自然优先级从高到低如下表所示。

我们只需要记住常见的运算符优先级顺序就可以了,不常用的避免使用当然也就可以回避优先级的问题了。

优先级由高到低依次是:

  1. **,指数 (最高优先级)
  2. ~,按位翻转
  3. * / % //,乘,除,求余数和取整除
  4. + -,加法减法
  5. >> <<,右移,左移运算符
  6. &,位与运算
  7. ^ |,位运算符
  8. <= < > >=,比较运算符
  9. == !=,等于运算符
  10. = %= /= //= -= += *= **=,赋值运算符
  11. is is not,身份运算符
  12. in not in,成员运算符
  13. not and or,逻辑运算符
a = 20
b = 10
c = 15
d = 5
e = 0
 
e = (a + b) * c / d       #( 30 * 15 ) / 5
print ("(a + b) * c / d 运算结果为:",  e)
 
e = ((a + b) * c) / d     # (30 * 15 ) / 5
print ("((a + b) * c) / d 运算结果为:",  e)
 
e = (a + b) * (c / d);    # (30) * (15/5)
print ("(a + b) * (c / d) 运算结果为:",  e)
 
e = a + (b * c) / d;      #  20 + (150/5)
print ("a + (b * c) / d 运算结果为:",  e)

x = True
y = False
z = False
 
if x or y and z:
    print("yes")
else:
    print("no")

90bad8d8fdb6e82e7ca546c7fa8894ad.png

以上就是本节的所有内容,这节内容在我们编程的过程中会普遍使用到,无需死记硬背,在反复使用后就会对它们的用法很熟悉了。俗话说,好记性不如烂笔头,在学习编程的过程中,敲代码不如烂笔头,小伙伴们一定要动手敲一敲代码,将理论应用于实践,事半功倍,受益良多。


【python入门系列】

杨地瓜:【Python基础(五)】基本数据类型和操作(II)​zhuanlan.zhihu.com
51936f9ef2c5bdeca3fb07c4619c897f.png
杨地瓜:【Python基础(四)】基本数据类型和操作(I)​zhuanlan.zhihu.com
8128071ced42d0499b0cabfa833df0a5.png
杨地瓜:【Python基础(三)】基础语法​zhuanlan.zhihu.com
613d7bdd42573730b73760736efb41de.png
杨地瓜:【Python基础(二)】计算机基本知识科普​zhuanlan.zhihu.com
8bfd06fe574ca1c79a23e8529cb9fee6.png
杨地瓜:【Python基础(一)】环境搭建与工具的安装​zhuanlan.zhihu.com
64dd02bfdf286726a6ba6b8a56d45004.png

【信息系统项目管理师考试分享】

杨地瓜:【项目管理(十一)】软考-信息系统项目管理师-论文总结(II)​zhuanlan.zhihu.com
7e326fa04c5523cc0ea06d53bc88cd59.png
杨地瓜:【项目管理(十)】软考-信息系统项目管理师-论文总结(I)​zhuanlan.zhihu.com
4d57ccf6f05d9cb6627e0c72312c77e6.png
杨地瓜:【项目管理(九)】软考-信息系统项目管理师-案例分析总结(IV)​zhuanlan.zhihu.com
e18690ac859203071471d81198c2b090.png
杨地瓜:【项目管理(八)】软考-信息系统项目管理师-案例分析总结(III)​zhuanlan.zhihu.com
bbe65cd14c4e8410e761177eed81d6cb.png
杨地瓜:【项目管理(七)】软考-信息系统项目管理师-案例分析总结(II)​zhuanlan.zhihu.com
e18690ac859203071471d81198c2b090.png
杨地瓜:【项目管理(六)】软考-信息系统项目管理师-案例分析总结(I)​zhuanlan.zhihu.com
2f1763e9fe568cc33177bd9259b6df06.png
杨地瓜:【项目管理(五)】软考-信息系统项目管理师-重点考察内容解析​zhuanlan.zhihu.com
e18690ac859203071471d81198c2b090.png
杨地瓜:【项目管理(四)】软考-信息系统项目管理师-知识梳理篇​zhuanlan.zhihu.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值