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

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. URL编码转换函数:escape()、encodeURI()、encodeURIComponent()讲解

    转自:https://www.cnblogs.com/douJiangYouTiao888/p/6473874.html 函数出现时间:         escape()                ...

  2. 一题搞定static关键字

    基础不牢,地动山摇 开篇一道题,考察代码执行顺序: public class Parent { static { System.out.println("Parent static init ...

  3. SqlLite用SQLiteTransaction快速导入数据

    mysql与sql server都有整表导入的类库,但是查遍了资料发现sqlLite没有,除非自己去写个,发现用SQLiteTransaction导入数据也很快,附上代码 /// <summar ...

  4. 2020年Java基础高频面试题汇总(1.4W字详细解析,你能遇到的都在这了)

    1. Java语言有哪些特点 (1)简单易学.有丰富的类库 (2)面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) (3)与平台无关性(JVM是Java跨平台使用的根本) (4)可靠安全 ...

  5. 全局作用域中,用 const 和 let 声明的变量不在 window 上,那到底在哪里?如何去获取?

    在ES5中,顶层对象的属性和全局变量是等价的,var 命令和 function 命令声明的全局变量,自然也是顶层对象. var a = 12; function f(){}; console.log( ...

  6. Python and or not 优先级

    not > and >or 1 or 5 and 4: -> 1 or 4-> 1 (1 or 5) and 4: ->1 and 4 ->4 x or y . x ...

  7. web 部署专题(六):nginx 安装(二) linux

    https://www.cnblogs.com/quzq/p/12131696.html 基础篇 一.环境 服务器版本:CentOS 7.2 为了保证学习阶段不遇到奇怪的事情,请保证以下四点(大神选择 ...

  8. How to use the function of bind

    The usage of  bind  is to define a specified scope for called function. Because the key this is easy ...

  9. 网络编程-UDP、TCP

    总结

  10. Burp Suite Proxy Module - 代理模块

    官方参考链接:https://portswigger.net/burp/documentation/desktop/tools/proxy/using 1.Burp Suite 代理设置选项 2.浏览 ...