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

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. 还能这么玩?用VsCode画类图、流程图、时序图、状态图...不要太爽!

    文章每周持续更新,各位的「三连」是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) 软件设计中,有好几种图需要画,比如流程图.类图.组件图等,我知道大部分 ...

  2. Scala 基础(十五):Scala 模式匹配(三)

    1 变量声明中的模式 match中每一个case都可以单独提取出来,意思是一样的. 应用案例 val (x, y) = (1, 2) val (q, r) = BigInt(10) /% 3 //说明 ...

  3. scrapy 基础组件专题(三):爬虫中间件

    一.爬虫中间件简介 图 1-1 图 1-2 开始这一张之前需要先梳理一下这张图, 需要明白下载器中间件和爬虫中间件所在的位置 下载器中间件是在引擎(ENGINE)将请求推送给下载器(DOWNLOADE ...

  4. java 数据结构(九):Collection子接口:List接口

    1. 存储的数据特点:存储序的.可重复的数据. 2. 常用方法:(记住)增:add(Object obj)删:remove(int index) / remove(Object obj)改:set(i ...

  5. 机器学习实战基础(三十八):随机森林 (五)RandomForestRegressor 之 用随机森林回归填补缺失值

    简介 我们从现实中收集的数据,几乎不可能是完美无缺的,往往都会有一些缺失值.面对缺失值,很多人选择的方式是直接将含有缺失值的样本删除,这是一种有效的方法,但是有时候填补缺失值会比直接丢弃样本效果更好, ...

  6. linux专题(九):磁盘管理

    http://dwz.date/UDf 概述 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用命令为 df.du. df :列出文件系统的整体磁盘使用量 du:检查磁盘空间 ...

  7. 《利用Python进行数据分析》自学知识图谱-导航

    项目简介 Project Brief <利用Python进行数据分析-第二版>自学过程中整理的知识图谱. Python for Data Analysis: Data Wrangling ...

  8. Python Ethical Hacking - NETWORK_SCANNER(2)

    DICTIONARIES Similar to lists but use key instead of an index. LISTS List of values/elements, all ca ...

  9. win7下建立docker共享文件夹

    前言 建立本机(win7)和VirtualBox中docker虚拟机的共享文件夹,注:下面的命令都是以root身份运行的,使用sudo -i切换到root身份,如无法切换,请自行在命令前加上sudo命 ...

  10. NVIDIA GPU Pascal架构简述

    NVIDIA GPU Pascal架构简述 本文摘抄自英伟达Pascal架构官方白皮书:https://www.nvidia.com/en-us/data-center/resources/pasca ...