Python基础(16)-运算符

16.1-算数运算符:

运算符 描述
+ 加-两个对象相加
- 减 - 得到负数或是一个数减去另一个数
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串
/ 除 - a除以b
% 取模 - 返回除法的余数
** 幂 - 返回a的b次幂
// 取整除 - 返回商的整数部分

实例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 10
a = 20
b = 10

print("a + b的值为:",a + b)

print("a - b的值为:",a - b)

print("a * b的值为:",a * b)

print("a / b的值为:",a / b)

print("a % b的值为:",a % b)

print("a ** b的值为:",a ** b)

print("a // b的值为:",a // b)

运行结果:

Python2 和 Python3 的区别:

在 Python2.7 中 11 / 4 = 2,在传统的算数中是等于 2.75 的,这是因为 Python2.7 中使用的是舍去式除法,当两个操作对象都是整数时,结果也是个整数,舍去式除法会舍去小数部分,如果想要在 Python2.7 中进行改变的话需要导入一个模块。但在 Python3 中,这个除法的结果是浮点数类型。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from __future__ import division
a = 11 / 4
print(a)

运行结果:

16.2-比较运算符:

运算符 描述
== 等于,比较对象是否相等
!= 不等于 - 比较两个对象是否不相等
<> 不等于 - 比较两个对象是否不相等,这个运算符类似 != 。(Python3中已废弃)
> 大于 - 返回a是否大于b
< 小于 - 返回a是否小于b。
>= 大于等于 - 返回a是否大于等于b。
<= 小于等于 - 返回a是否小于等于b。

实例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 10
a = 20
b = 10

if a == b:      #a == b 返回 False
    print("a == b")
else:
    print("a != b")

if a != b:      #a !=b 返回 True
    print("a != b")
else:
    print("a == b")

if a > b:       # a > b 返回 True
    print("a > b")
else:
    print("a < b")

if a < b:       # a < b 返回 False
    print("a < b")
else:
    print("a > b")

if a >= b:       # a >= b 返回 True
    print("a >= b")
else:
    print("a <= b")

if a <= b:       # a <= b 返回 False
    print("a <= b")
else:
    print("a >= b")

运行结果:

16.3-赋值运算符:

运算符 描述
= 简单的赋值运算符
+= 加法赋值运算符
-= 减法赋值运算符
*= 乘法赋值运算符
/= 除法赋值运算符
%= 取模赋值运算符
**= 幂赋值运算符
//= 取整除赋值运算符

实例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 10
a = 20
b = 10

a += b      #a += b 等效于 a = a + b
print("a += b:",a)

a -= b      #a -= b 等效于 a = a - b
print("a -= b:",a)

a *= b      #a *= b 等效于 a = a * b
print("a *= b:",a)

a /= b      #a /= b 等效于 a = a / b
print("a /= b:",a)

#修改了变量 a 和 b 的值
a = 20
b = 10

a %= b      #a %= b 等效于 a = a % b
print("a %= b:",a)

#修改了变量 a 和 b 的值
a = 20
b = 10

a **= b     #a **= b 等效于 a = a ** b
print("a **= b:",a)

#修改了变量 a 和 b 的值
a = 20
b = 10

a //= b     #a //= b 等效于 a = a // b
print("a //= b:",a)

运行结果:

16.4-位运算符:

运算符 描述
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
\ 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
^ 按位异或运算符:当两对应的二进位相异时,结果为1。
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1,且符号位进行补码,简单的可以理解为 ~a=-(a+1)。
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。

实例:

按位运算符就是把数字看作二进制来进行计算的。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
以下设置变量 a = 60,b = 13
二进制格式: a = 00111100,b = 00001101
"""
a = 60      # a = 00111100
b = 13      # b = 00001101

print("按位与运算符:",a & b,bin(a & b))       # 12 = 00001100

print("按位或运算符:",a | b,bin(a | b))       # 61 = 00111101

print("按位异或运算符:",a ^ b,bin(a ^ b))      # 49 = 00110001

print("按位取反运算符:",~a,bin(-61))       # 60 -> -(60+1) 即 -61 转为二进制为 -00111101

print("左移动运算符:",a << 2,bin(a << 2))     # 240 = 11110000

print("右移动运算符:",a >> 2,bin(a >> 2))     # 15 = 00001111

运行结果:

16.5-逻辑运算符

运算符 逻辑表达式 描述
and a and b 布尔"与" - 如果 a 为 False,a and b 返回 False,否则它返回 b 的计算值。
or a or b 布尔"或" - 如果 a 是非 0,它返回 a 的值,否则它返回 b 的计算值。
not not a 布尔"非" - 如果 a 为 True,返回 False 。如果 a 为 False,它返回 True。

实例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 10
a = 20
b = 10

if a and b:
    print("变量 a 和 b 都为 True")
else:
    print("变量 a 和 b 有一个不为 True")

if a or b:
    print("变量 a 和 b 有一个为 True 或都为 True")
else:
    print("变量 a 和 b 都不为 True")

if not(a and b):
    print("变量 a 和 b 都为 False 或一个为 False")
else:
    print("变量 a 和 b 都为 true")

运行结果:

16.6-成员运算符:

运算符 描述
in 如果在指定的序列中找到值返回 True,否则返回 False。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。

实例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
list = [11,22,33,44,[55,66,77,88]]

ret = 22 in list        # 22 在 list列表中所以返回 True
print(ret)

ret = [55,66,77,88] in list     # [55,66,77,88]该列表 在 list列表中所以返回 True
print(ret)

ret = 55 not in list        # 55 不在 list列表中所以返回True
print(ret)

运行结果:

16.7-身份运算符:

运算符 描述
is is 是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象

实例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下设置变量 a = 20,b = 20
a = 20
b = 20

c = a is b      # 类似于 id(a) == id(b),a 和 b 引用的是统一对象所以返回 True
print(c)

c = a is not b      # a 和 b 引用的是统一对象所以返回 False
print(c)

运行结果:

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

推荐阅读更多精彩内容