Python_0基础:5.运算符

一、算数运算符

下面以a=10,b=20为例进行计算:

运算符 描述 实例
+ 两个对象相加 a + b 输出结果 30
- 得到负数 或 一个数减去另一个数 a - b 输出结果 -10
* 两个数相乘 或 返回一个被重复若干次的字符串 a * b 输出结果 200
/ b / a 输出结果 2
// 取整除 返回商的整数部分 9 / 2 输出结果 4 、 9.0 / 2.0 输出结果 4.0
% 取余 返回除法的余数 b % a 输出结果 0
** 指数 a ** b 为10的20次方
() 小括号 提高运算优先级,比如:(1+2)*3
a = 3
b = 2

print(a + b)    # 5
print(a - b)    # 1
print(a * b)    # 6
print(a / b)    # 1.5
print(a // b)   # 1
print(a % b)    # 1
print(a ** b)   # 9
print((5 + 1) * 2)  # 12

扩展:

字符串的加法,是进行拼接的

# a = '123'
b = '456'

print(a + b)    # 123456

在Python中,‘+’号两端都是字符串才可以进行加法运算

a = '123'
b = 456

# print(a + b)    # 123456
print(a + str(b))   # # 123456

字符串的乘法,是将字符串重复多少次

a = '我爱你 你爱我 蜜雪冰城甜蜜蜜'
print(a * 3)    # 我爱你 你爱我 蜜雪冰城甜蜜蜜我爱你 你爱我 蜜雪冰城甜蜜蜜我爱你 你爱我 蜜雪冰城甜蜜蜜

注意:混合运算时,优先级顺序为:**高于* / % //高于+ -,为了避免歧义,建议使用()来处理运算符优先级。

并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。


二、赋值运算符

运算符 描述 实例
= 赋值运算符 把 = 号右边的结果 赋给 左边的变量,如 num = 1+2*3 ,结果num的值为7
  • 单个变量赋值
a = 10
print(a)    # 10
  • 同时为多个变量赋值(使用等号连接)
b = c = 20
print(b)    # 20
print(c)    # 20
  • 多个变量赋值(使用逗号分隔)
d, e, f = 1, 2, 3
print(d)    # 1
print(e)    # 2
print(f)    # 3

三、复合赋值运算符

运算符 描述 实例
+= 加法赋值运算符 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

示例:

  • +=
a = 1
a += 2  # a = a + 2
print(a)    # 3
  • -=
c = 2
c -= 1  # c = c -1
print(c)    # 1
  • *=
b = 1
b *= 3  # b = b * 3
print(b)    # 3
  • /=
d = 3
d /= 2  # d = d / 2
print(d)    # 1.5
  • //=
e = 3
e //= 2     # e = e // 2
print(e)    # 1
  • %=
f = 3
f %= 5  # f = f % 5
print(f)    # 3
  • **=
g = 5
g **= 3  # g = g ** 3
print(g)    # 125

四、比较运算符

比较运算符返回的都是Boolean类型的数据

以下假设变量a为10,变量b为20:

运算符 描述 实例
== 等于:比较对象是否相等 (a == b) 返回 False
!= 不等于:比较对象是否不相等 (a != b) 返回 True
> 大于:返回x是否大于y (a > b) 返回 False
>= 大于等于:返回x是否大于等于y (a >= b) 返回 False
< 小于:返回x是否小于y (a < b) 返回 True
<= 小于等于:返回x是否小于等于y (a <= b) 返回 True
  • '==' 恒等 判断 == 两边的变量是否一致
a = 10
b = 20
print(a == b)  # False
  • '!=' 不等 判断 != 两边的变量是否不一致
a = 10
b = 20
print(a != b)  # True

扩展:<> python 2版本使用,python 3遗弃

  • '>' 大于
print(10 > 20)  # False
print(10 > 5)   # True
  • '>=' 大于等于
print(10 >= 10)     # True
print(10 >= 20)     # False
  • '<' 小于
print(10 < 20)      # True
print(10 < 5)       # False
  • '<=' 小于等于
print(10 <= 10)  # True
print(10 <= 20)  # True

五、逻辑运算符

运算符 逻辑表达式 描述 实例
and x and y 只要有一个运算数是False,结果就是False
只有所有的运算数都为True,结果才是True
做取值运算时,取第一个为False的值,如果所有的值都为True时,取最后一个值
True and True and False 结果为False
True and True True 结果为True
or x or y 只要有一个运算数是True,结果就是True
只有所有的运算数都为False时,结果才是False
做取值运算时,取第一个为True的值,如果所有的值都为False时,去最后一个值
False or False or True 结果为 True
False or False or False 结果为False
not not x 布尔“非”
如果x为True,返回False;
如果x为False,返回True
not True 结果为 False
  • and 与

and两边的数据,必须全都是True的时候,才会返回True;只要有一端返回的是False,那么就返回False。

# and两边都是False的时候,返回的是False
print(10 > 20 and 10 > 11)  # False

# and一端是True,一端是False,返回的是False
print(10 > 5 and 10 > 11)   # False

# and一端是False,一端是True,返回的是False
print(10 > 11 and 10 > 5)   # False

# and两端都是True,则返回的是True
print(10 > 5 and 10 > 6)    # True
  • or 或者

or的两端只要一端是True,那么结果就是True

# or两端都是False,则返回的是False
print(10 > 20 or 10 > 21)   # False

# or两端前面是True,后面是False,那么返回的是True
print(10 > 5 or 10 > 20)    # True

# or两端前面是False,后面是True,那么返回的是True
print(10 > 20 or 10 > 5)    # True

# or两端都是True,那么返回的是True
print(10 > 5 or 10 > 6)     # True
  • not 非 取反
print(not True)     # False
print(not False)    # True

print(not(10 > 20))  # True

性能提升:

面试题:以下代码的输出结果是什么,为什么会有这样的输出。

a = 34

a > 10 and print('hello world')
a < 10 and print('hello world')

a > 10 or print('你好,世界')
a < 10 or print('你好,世界')
  • and的性能优化 短路与
a = 36

a > 10 and print('hello world')     # hello world

# 当and前面的结果是False的情况下,那么后面的代码就不再执行了
a < 10 and print('hello world')
  • or的性能优化 短路或
# or只要有一方为True,那么结果就是True
a = 38

a > 39 or print('你好,世界')    # 你好,世界
a > 37 or print('你好,世界')
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容