运算符包括算数运算符、比较运算符、赋值运算符、成员运算符、身份运算符、逻辑运算符、位运算符

python运算符 注意点
算数运算符 % 取余 , //地板除 , ** 幂运算
比较运算符 == 比较两个值是否相等 != 比较两个值是否不同
赋值运算符 a += 1 => a = a+1
成员运算符 in 或 not in 判断某个值是否包含在(或不在)一个容器类型数据当中
身份运算符 is 和 is not 用来判断内存地址是否相同
逻辑运算符 优先级 () > not > and > or
位运算符 优先级 (<<或 >> ) > & > ^ > | 

一、算数运算符 + - * / // % **

1、 +、 -、 *、 /

# (1) 算数运算符  + - * / // % **
var1 = 6
var2 = 4
# +
res = var1 + var2
print(res) # -
res = var1 - var2
print(res) # *
res = var1 * var2
print(res) # / 除法 (结果为小数)
res = var1 / var2
res = 10 / 5
print(res) # // 地板除 (返回整数)
res = 10 // 5
res = 11 // 4
print(res) # 如果被除数或者除数是一个小数,结果加上.0
res = 11.0 // 4
print(res)

+、-、*、/

2、取余 %

res = 11 % 4
res = -11 % 4 # -3 + 4 = 1
res = 11 % -4 # 3 + (-4) = -1
res = -11 % -4 # -3(如果被除数和除数都是负数,在正常得到的结果前面填上负号即可.)
print(res) res = -17 % 7 # -3 + 7 = 4
res = 17 % -7 # 3 + (-7) = -4
res = -17 % -7 #-3
print(res)

取余

3、幂运算 **

res = 3 ** 2
res = 3 ** 4
print(res)

幂运算

二、比较运算符  > < >= <= == !=

比较运算符只会差生两种结果: True 真的 ,False 假的

var1 = 100
var2 = 100 res = var1 > var2
res = var1 < var2
res = var1 >= var2
res = var1 <= var2
print(res) # 注意点
res = var1 == var2
print(res) res = var1 != var2
print(res)

比较运算符

三、赋值运算符 = += -= *= /= //= %= **=

1、= += -= *= /=

# = 从右向左,将右侧的值赋值给左侧变量
var1 = 9
var2 = 2 # +=
"""var1 = var1 + var2"""
# var1 += var2
# print(var1) # -=
"""var1 = var1 - var2"""
# var1 -= var2
# print(var1) # *=
"""var1 = var1 * var2"""
# var1 *= var2
# print(var1) # /=
"""var1 = var1 / var2"""
# var1 /= var2
# print(var1)

= += -= *= /=

2、//= %= **=

# //=
"""var1 = var1 // var2"""
# var1 //= var2
# print(var1) # %=
"""var1 = var1 % var2"""
# var1 %= var2
# print(var1) # **=
"""var1 = var1 ** var2"""
var1 **= var2
print(var1)

//= %= **=

四、 成员运算符 in、 not in (针对容器类型数据)

字符串必须是一个连续的片段

strvar = "雷霆嘎巴,无情哈拉少"
res = "雷" in strvar
res = "文" not in strvar
res = "无情" in strvar
res = "霆哈少" in strvar
res = ',' not in strvar
print(res) # list tuple set
lst = ["余锐","高学峰","治理追","温子月","草神光"]
res = "高学峰" in lst
print(res) tup = ("余锐","高学峰","治理追","温子月","草神光")
res = "李博伦" not in tup
print(res) setvar = {"金角大王","银角大王","神秘男孩"}
res = "神秘男孩" in setvar
print(res) # dict
""" in 和 not in 在字典中只判断键,不判断值 """
dic = {"yr":"英俊帅气","bx":"抠脚大汉","mcp":"高大威猛"} res = "英俊帅气" in dic # False
res = "yr" in dic
res = "mcp" not in dic
print(res)

in 和 not in

五、身份运算符 is 和 is not (检测两个数据在内存当中是否是同一个值)

1、整型 -5 ~ 正无穷

var1 = 1000
var2 = 1000
res = var1 is var2
print(res)

整形

2、浮点型 非负数

var1 = -5.78
var2 = -5.78
res = var1 is not var2
print(res)

浮点型 非负数

3、布尔型 只要值相同即可

var1 = True
var2 = True
res = var1 is var2
print(res)

布尔型

4、复数 实数+虚数永远不同 (只有虚数的条件例外)

var1 = 4-90j
var2 = 4-90j
res = var1 is var2
print(res)

复数

5、容器类型

var1 = (1,2,3)
var2 = (1,2,3)
res = var1 is var2
print(res)

容器

六、逻辑运算符 and or not

1、and 逻辑与

"""全真则真,一假则假"""
res = True and True # True
res = True and False # False
res = False and True # False
res = False and False # False
print(res)

and

2、 or 逻辑或

"""全假则假,一真则真"""
res = True or True # True
res = True or False # True
res = False or True # True
res = False or False # False
print(res)

or

3、 not 逻辑非

"""真变假,假变真"""
res = not True
res = not False
print(res)

not

4、逻辑短路

如果出现了短路效果,后面的代码不执行

"""
短路:
(1) True or 表达式
(2) False and 表达式
"""
"""
True or print("紫月真胖呀")
True or True => True
True or False => True False and print("紫月真猛呀")
False and False => False
False and True => False
""" """
bool 类型为假的十种情况
0 0.0 0j False '' [] () {} set() None
先用大脑算一下布尔值真假,是否出现短路情况
如果出现了直接返回当前值,没出现,继续向右执行;
""" res = 5 or 6
res = 0 or 6
res = 0 and 9
print(res)

逻辑短路

5、逻辑运算符的优先级

() > not > and > or

res = 5 or 6 and 7 # 5 or 7 => 5
res = (5 or 6) and 7 # 5 and 7 => 7
res = not(5 or 6) and 7 # not 5 and 7 => False and 7 =>False
print(res) res = 1>2 or 3<4 and 5>10 or 11<12 and 13>15 or 100<1000 and 1<2
# res = False or True and False or True and False or True and True
# res = False or False or False or True
# res = False or False or True
# res = False or True
# res = True
print(res)

优先级

七、位运算符

1、按位与 &

var1 = 19
var2 = 15
print(var1 & var2)
"""
19的二进制
0000 ... 10011
15的二进制
0000 ... 01111 0000 ... 10011
0000 ... 01111
0000 ... 00011 => 3
"""

&

2、按位或 |

var1 = 19
var2 = 15
print(var1 | var2)
"""
19的二进制
0000 ... 10011
15的二进制
0000 ... 01111 0000 ... 10011
0000 ... 01111
0000 ... 11111 => 31
"""

|

3、按位异或 ^ 两个值不一样,返回真,否则返回假

"""
1 0 => 1
1 1 => 0
0 0 => 0
0 1 => 1
"""
var1 = 19
var2 = 15
print(var1 ^ var2)
"""
19的二进制
0000 ... 10011
15的二进制
0000 ... 01111 0000 ... 10011
0000 ... 01111
0000 ... 11100 => 28
"""

^

4、<< 左移

""" 左移相当于做乘法 : 5 * 2的n次幂 """
res = 5 << 1 #
res = 5 << 2 #
res = 5 << 3 #
print(res)
"""
0000 ... 101
0000 ... 1010 移动一位 10
0000 10100 移动二位 20
"""

<<

5、 >> 右移

""" 右移相当于做除法 : 5 // 2的n次幂 """
res = 5 >> 1 #
res = 5 >> 2 #
res = 5 >> 3 #
print(res)
"""
0000 ... 101
0000 ... 010 移动一位 2
0000 ... 001 移动二位 1
0000 ... 000 移动三位 0
"""

>>

6、 ~ 按位非 (针对于补码进行操作,按位取反,包括符号位)

"""公式: -(n+1)"""
var1 = ~19
print(var1)
"""
~ 按位非每一位都取反,包括符号位,求反码每一位除了符号位,都取反. 原码:0000 ... 10011
反码:0000 ... 10011
补码:0000 ... 10011 补码: 0000 ... 10011
按位非: 1111 ... 01100 给你补码求原码:
补码: 1111 ... 01100
反码: 1000 ... 10011
原码: 1000 ... 10100 => -20
""" var1 = ~(-22)
print(var1)
"""
原码: 1000 ... 10011
反码: 1111 ... 01100
补码: 1111 ... 01101 补码: 1111 ... 01101
按位非: 0000 ... 10010 给你补码求原码:
正数 : 补码 = 反码 = 原码 原码: 0000 ... 10010 => 18
"""

~

7、运算符总结

 """
(1) 个别运算符:
优先级最高 ** 幂运算
优先级最低 = 赋值运算符
() 括号可以提升运算优先级 (2) 整体 一元运算符 > 二元运算符
一元运算符: 同一时间,只操作一个值 - ~
二元运算符: 同一时间,操作两个值 + - * / ... (3) 同一层级
逻辑: () > not > and > or
算数: 乘除 > 加减
位运算符: ( << >> ) > & > ^ > | (4) 其他运算符
算数运算符 > 位运算符 > 比较运算符 > 身份运算符> 成员运算符 > 逻辑运算符
赋值运算符是最后算完进行赋值,做收尾工作的.
"""
res = 5+5 << 6//3 is 40 and True
print(res) """
res = 10 << 2 is 40 and True
res = 40 is 40 and True
res = True and True
res = True
"""
# 加上括号包起来,让别人能看懂代码;
res = (5+5) << (6//3) is 40 and True

day4. 运算符的更多相关文章

  1. Python--Day2/Day3/Day4(运算符、数据类型及内建函数)

    一.昨日内容回顾 Python种类:CPython(Python).JPython.IronPython.PyPy 编码: Unicode.UTF-8.GBK while循环 if...elif... ...

  2. day4:运算符

    1.算术运算符:+ - * / // % ** 注意点:1./ 除法,结果为小数  2.// 地板除,返回整数  3.如果被除数或者除数是一个小数,结果加上.0 2.比较运算符:< > & ...

  3. day4 python 运算符

    python运算符 1.算数运算符( + - * / // % ** ) # + - * / // % ** # 加 减 乘 除 整除 余数 幂 ​ #注意 #1. / 得到浮点型, // 得看被除数 ...

  4. 【JAVA零基础入门系列】Day4 变量与常量

    这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...

  5. 【JAVA零基础入门系列】Day5 Java中的运算符

    运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...

  6. shell运算符

    原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. #!/bin/bash v ...

  7. SQL Server-聚焦APPLY运算符(二十七)

    前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始 ...

  8. java中的移位运算符:<<,>>,>>>总结

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  9. 我的MYSQL学习心得(五) 运算符

    我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

随机推荐

  1. 用Serverless Kubernetes为.NET (Core)应用保驾护航

    前言 容器化对现在(0202年)来说,已经不算是什么新东西了,老黄最近也在公司推动这一块的发展,有幸落地了几个项目,有.NET Core的,也有.NET Framework的. 容器化现在主流的就是d ...

  2. __stdcall、__cdcel和__fastcall三者的区别

    转自:https://www.cnblogs.com/huhewei/p/6080143.html 一.概述 __stdcall.__cdecl和__fastcall是三种函数调用协议,函数调用协议会 ...

  3. web网页动态分享facebook和twitter

    介绍 facebook分享 http://www.facebook.com/sharer.php?t=${text}u=encodeURIComponent('静态html') twitter分享 h ...

  4. Github Actions简单部署一个vue/react项目

    大体介绍 本文对github actions部署前端项目做一个简单的总结,总体来说,我感觉用它想要部署一个前端项目,可以说非常简单,简单得令人震惊

  5. Pop!_OS下安装C++编程工具

    Pop!_OS下C++编程 #0x0 Visual Studio Code #0x1 C++ 0x11 code::blocks #0x0 Visual Studio Code 下载安装vscode ...

  6. CSS(二)- 属性速览(含版本、继承性和简介)

    相关链接 CSS3速查表,这里面列出了所有新增的属性以及新增或者修改的属性值 css参考手册,很好地一个常用网站 CSS定位(不可继承) CSS布局(仅visibility可继承) CSS尺寸(不可继 ...

  7. java规范总结

    1.所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较. 说明:对于 Integer var = ? 在-128 至 127 范围内的赋值,Integer 对象是在 Intege ...

  8. Python面向对象04 /封装、多态、鸭子类型、类的约束、super

    Python面向对象04 /封装.多态.鸭子类型.类的约束.super 目录 Python面向对象04 /封装.多态.鸭子类型.类的约束.super 1. 封装 2. 多态 3. 鸭子类型 4. 类的 ...

  9. combogrid设置多选,并获取多选的值

    1.combogrid设置多选 1.添加该属性 multiple: true, 2.添加该列 {field:'ck',checkbox:true}, 2.获取多选的值 var arr = $(&quo ...

  10. git本地创建分支,并提交到github上去

    很多时候,我们再开发的时候需要分支. 那么怎么在本地创建分支,并提交到github或者是远程仓库中呢? 其实很简单: 第一步: git checkout -b dev     创建新的分支 第二步: ...