Python 基础之python运算符
一.运算符
1.算数运算符 + - * / // % **
var1 = 5
var2 = 8
#(1) + 加
res = var1 + var2
print(res)
# (2) - 减
res = var1 - var2
print(res)
# (3) * 乘
res = var1 * var2
print(res)
# (4) / (除,结果一定是小数)
var1 = 8
var2 = 2
res = var1 / var2
print(res)
# (5) // 地板除 (整除)
var1 = 8
var2 = 2
res = var1 // var2
print(res)
# 如果相除的两个含有小数,那么就在结果上加上.0
var1 = 8.0
var2 = 2
res = var1 //var2
print(res)
#(6) % 取余
print("<=================>")
var1 = 7
var2 = 4
res = var1 % var2
print(res)
print("<================>")
var1 = -7
var2 = 4
res = var1 % var2
print(res) #1
# -3 +4 =1
print("<===================>")
var1 = 7
var2 = -4
res = var1 % var2
print(res) #-1
# 3-4 = -1
# (7) ** 幂运算
var1 = 3
res = var1 ** 3
print(res)
2.比较运算符 > < >= <= == !=
#(1) > 大于
var1 = 10
var2 = 20
res = var1 > var2
print(res)
# (2) < 小于
var1 = 10
var2 = 20
res = var1 < var2
print(res)
#(3) >= 大于等于
var1 = 20
var2 = 20
res = var1 >= var2
print(res)
#(4) <= 小于等于
var1 = 20
var2 = 20
res = var1 <= var2
print(res)
#(5) == 等于
var1 = 14
var2 = 13
res = var1 == var2
print(res)
'''
是2个等号,不是一个等号,一个等号是在做变量的赋值,两个是比较是否相同
if var1 == var2
print(123)
'''
# (6) != 不等于
var1 = 14
var2 = 13
res = var1 != var2
print(res)
3.赋值运算符 = += -= *= /= //= **=
# (1) = 将右边的值赋值给左侧
var1 = 19
var2 = 18
var2 = var1
print(var2)
# (2) += 加等于
var1 +=var2
#var1 = var1 + var2 var1 = 19 + 20 = 39
print(var1)
#(3) -= 减等于
var1 -= var2
#var1 = var1 - var2
print(var1)
#(4) *= 减等于
var1 *= var2
#var1 = var1 * var2
print(var1)
#(5) /= 除等于
var1 /= var2
# var1 = var1 / var2
print(var1)
# (6) //= 整除等于
var1 //= var2
# var1 = var1 // var2
print(var1)
#(7) %= 取余等于
var1 %= var2
# var1 = var1 % var2
print(var1)
# (8) **= 幂等于
var1 **= var2
# var1 = var1 ** var2
print(var1)
4.成员运算符 in 和 not in (针对容器类型)
""" 如果是字符串,必须是一个连续的片段才能判断成功"""
# (1) 对于str
# str
strvar = "英雄爱江山,更爱美人"
res = "爱江山" in strvar
print(res)
# (2) 对于list tuple set
listvar = [1,2,34,56,7]
res = 2 in listvar
print(res)
res = 55 not in listvar
print(res)
tuplevar = (323,31231,32131,3121)
res = 432 not in tuplevar
print(res)
setvar = {(1,2,3),(4,5,6),7}
res = (1,2,3) in setvar
print(res)
#(3)对于dict (in not in 判断字典是字典的键)
dictvar = {"hxd":"大","sch":"小"}
res = "大" not in dictvar #True 因为大不在键里,所以是not in
print(res)
res = "hxd" in dictvar
print(res)
res = "aaa" not in dictvar
print(res)
5.身份运算符 is 和 is not
(检测两个数据在内存当中是否是同一个值)
var1 = 6
var2 = 6
print(id(var1),id(var2))
var1 = "好"
var2 = "不好"
#is 用来判断2个变量的地址是否一致
res = var1 is var2
print(res)
res = var1 is not var2
print(res)
# var1 == var2 与 var1 is var2 区别
一个是在比较两个值是否相同
一个是在比较两个值地址是否相同
6.逻辑运算符 and or not
# (1) and 逻辑与
'''
全真则真,一假则假
'''
res = True and True
print(res)
res = True and False
print(res)
res = False and True
print(res)
res = False and False
print(res)
#第一个为真,其他都为假
#(2) or 逻辑或
''' 全假则假,一真则真'''
res = True or True
res = True or False
res = False or False
res = False or True
print(res)
# (3) not 逻辑非
''' 真变假 假变真'''
res = not False
res = not True
print(res)
#(4)逻辑短路 (后面的代码就不走了)
'''
#两种情况
res = False and 布尔值
res = True or 布尔值
'''
#print 默认返回一个None 而 None的布尔值是假
# res = False and print(1)
print("============================")
res = True and print(2)
print(res)
print("=========================")
res = True or print(3) #当最后结果为真的时候就不会返回None
print(res)
print("===========================")
res = False or print(4)
print(res)
print("==========")
res = True and 3
print(res)
# 逻辑运算符优先级
## python 语言支持逻辑运算符, 以下假设变量a 为 10, b为 20:
##运算符 逻辑表达式 描述 实例
##and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
##or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
##not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
''' () > not > and > or '''
# (5+6)*37
res = 5 or 6 and 7
print("5 or 6 and 7等于:",res)
#5 or 7 => 7
res = not (5 or 6)and 7
#| (5 or 6) => 5 | not 5 => False | False and 7 => False
print("not (5 or 6)and 7 等于:%s" %(res))
res = 5>6 or 7<8 and 9>10 or 11<12
print(res)
'''
# res = 5>6 or 7<8 and 9>10 or 11<12
#下面是解析:
False or True and False or True
False or False or True
False or True => True
'''
print(res)
'''
有一种情况不用考虑and和or优先级问题,
就是or 端口,比如 True or .......=> 结果一定为Ture
'''
# #数据类型的判断 isinstance
'''
isinstance (要判断的数据,判断的类型)要么返回真, 要么返回假
isinstance (要判断的数据,(元组,放在各种类型,满足一个条件即为真))
'''
# 5 是int 类型的吗?
res = isinstance(5,int)
print(res)
res = isinstance("2233",list)
print(res)
# 有一个类型满足 返回真 一个都不满足 返回假
res = isinstance(5,(int,list,tuple,str))
print(res)
7.位运算符 & | ~ ^ << >>
var1 = 19
var2 = 15
#(1) & 按位与
res = var1 & var2
print(res)
"""
000...10011
000...01111
000...00011
"""
# (2) | 按位或
res = var1 | var2
print(res)
"""
000...10011
000...01111
000...11111
"""
#(3) ^ 按位异或
res = var1 ^ var2
"""
000...10011
000...01111
000...11100
"""
print(res)
#(4) << (左移 右边的值相当于乘以2的几次幂 n<<m 相当于n乘2的m次幂
res = 5 << 1
res = 5 << 2
print(res)
'''
000...101
000...1010
'''
# (5) >> 右移 (右移 右边的值相当于除以2的几次幂 n <<m 相当于n除2的m次幂)
res = 5 >>1 #5 // 2 的1次幂 => 2
res = 5 >>2 #5 // 2 的2次幂 => 1
res = 5 >>3 #5 // 2 的3次幂 => 0
print(res)
'''
000...101
000....10 => 2
000....01 => 1
'''
#(6) ~ 按位非 (按位非 操作的二进制的补码 对二进制的每一位进行取反,包括符号位) 公式:-(n+1)
res = ~19
print(res)
'''
000...10011 (补码)
111...01100 (按位非)
#给补码求原码
111.。。01100
100...10011 (反码)
100...10100 (原码= 反码+1)
十进制 => -20
'''
res = ~(-19)
print(res)
'''
1000...10011 (原码)
1111...01100 (反码)
1111...01101 (补码)
#现在 进行按位非
0000...10010
因为高位都是0是正数
原码=反码=补码
0000...10010 (原码)
二.运算符的优先级
() 括号优先级最高
** 优先级其次
= 优先级最低
一元元算符:同一时间只操作一个数字的(- ~)
二元运算符:同一时间能操作二个数字的(+,-,...)
~19+5
一般来说,一元运算符大于二元运算符的优先级
+ - * / => * / 大于 + -
() not and or => not > and > or
如果都是二级运算符:
算数运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
赋值运算符 作为最后等号右边的值算好后进行赋值
res = 5+5 << 6 // 3 is 40 and True
print(res)
'''
5+5 << 2 is 40 and True
10 <<2 is 40 and True
40 is 40 and True
True and True
True
'''
Python 基础之python运算符的更多相关文章
- python基础语法(运算符及优先级)
python基础语法(运算符及优先级) python语言支持的运算符类型 算数运算符 假设变量a为10,变量b为21 算数符 描述 实例 + 加-两个对象相加 a+b结果31 - 减-得到一个负数或者 ...
- 二十一. Python基础(21)--Python基础(21)
二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性: #类.属性: 调用的就是类中的属性 #对象.属性: 先从自己的内存空间里找名 ...
- python基础之七种运算符
废话不多说,上节说的是数据类型,本篇讲讲数据运算. 在算式"1+2"中,"1"和"2"被称为操作数,"+"被称为运算符 ...
- python基础 - 变量与运算符
变量与运算符 变量 定义一个变量 a = [1,2,3,4,5,6] print(a) # [1,2,3,4,5,6] 变量命名要求: 首字母不能是数字 只能包含字符数字下划线 不能是关键字 type ...
- python基础[1]——python运算符&python数据类型之数值型
python常用运算符&数字&布尔值 上节回顾 一.变量名和标识符 变量名的命名规范 (1)只能包含数字,字母和下划线 (2)只能以字母和下划线开头(不能以数字开头) (3)标识符是区 ...
- python基础语法_7运算符
http://www.runoob.com/python3/python3-basic-operators.html#ysf7 目录 Python语言支持以下8类型的运算符: 算术运算符(-,+,*, ...
- Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程
[保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...
- python基础1 ---python简介
python基础 一.python前言 1.什么是编程语言 编程语言是程序员与计算机之间沟通的介质. 2.编程语言的分类 机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集 ...
- python基础实践 -python是一门动态解释性的强类型定义语言
python是一门动态解释性的强类型定义语言 Python能做什么? Python是一门综合性的语言,你几乎能在计算机上通过Python做任何事情,以下是Python应该最广泛的几个方面: 1.网络应 ...
- python基础-初识Python和不同语言之间的区别
一.Python的创始人谁? Python之父:吉多·范罗苏姆GuidovanRossum 吉多·范罗苏姆是一名荷兰计算机程序员,他作为Python程序设计语言的作者而为人们熟知.在Python社区, ...
随机推荐
- The Preliminary Contest for ICPC Asia Xuzhou 2019 J Random Access Iterator (树形DP)
每次循环向下寻找孩子时,随机选取一个孩子,设dp[u]为从u出发,不能得出正确答案的概率,则从u出发,走一次的情况下不能得出正确答案的概率是 P = (dp[v1]+dp[v2]+dp[v3]+--d ...
- 在 Fabric 中使用私有数据
本教程将演示收集器(collection)的使用,收集器为区块链网络上已授权的组织节点 提供私有数据的存储和检索. 本教程假设您已了解私有数据的存储和他们的用例.更多的信息请参阅 私有数据 . 本教程 ...
- 洛谷P1616疯狂的采药(完全背包)
题目背景 此题为NOIP2005普及组第三题的疯狂版. 此题为纪念LiYuxiang而生. 题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的 ...
- 安装多个xcode对homebrew影响
安装多个xcode,可能会导致无法识别默认使用哪个xcode的情况,这时候执行下列语句,设置默认xcode sudo xcode-select --switch /Applications/Xcode ...
- js下false情况
//为false的情况 false null NaN undefined "" 0
- Vue.nextTick DOM 更新循环结束之后执行延迟回调
在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. 简单来说,Vue 在修改数据后,视图不会立刻更新,而是等同一事件循环中的所有数据变化完成之后,再统 ...
- Eclipse Tomcat 7.0 添加WEB项目报错:Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
前言 我叫梅乾花,我误闯了“从零开始的程序世界”,遭受到了前所未有的的困难,为了活下去,为了看见美好的明天,我开始学习之旅. 问题篇我打开了"Eclipse",将项目导入其中,开启 ...
- python opencv:图像的一些属性与操作
img = cv.imread(xxx) # 常用的有以下属性 type(img) # img的数据类型 img.shape # img的结构 img.size # img的大小 img.dtype ...
- left join 、right join 和inner join之间的区别
SQL的left join .right join 和inner join之间的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) ...
- 战争游戏OverTheWire:Bandit(一)
一个用来熟悉linux命令的游戏: Level0 告诉我们使用ssh连接网址,用户名和密码皆为bandit0.使用Xshell或者linux连接都可以 我使用的是Xshell5: Level0-> ...