Python运算符,python入门到精通[五]
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3, 其操作数是 2 和 3,而运算符则是“+”。在计算器语言中运算符大致可以分为 5 种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。运算符也是计算机里比较好理解的人类语言之一,只要稍微懂点数学的,都能看懂算数运算符。在 Python 中常见的运算符有:+、-、*、/、**/<、>、!=、//、%、&、|、^、~、>>、<<、<=、>=、==、not、and、or。在接下来的博文中再一一介绍这些运算符的具体事例。
python 你不去认识它,可能没什么,一旦你认识了它,你就会爱上它
代码正文 & 讲解:
# coding=utf-8 #两个数字相加 sumNumber=1+2 print(sumNumber) #输出结果:3#两个字符串相加
sumString="Nice work"
print(sumString) #输出结果:Nice work#两个数字相减
subNumber=2-1
print(subNumber) #输出结果:1#两个数字相乘或者字符串重复
multiplicationNumber=2*3
print(multiplicationNumber) #输出结果:6
multiplicationString="hello"2
print(multiplicationString) #输出结果:hellohello
#/--- 关于号重复字符串之前的博客已经介绍过了 ---/#两个数相除
divisionNumber=9/2
print(divisionNumber) #输出结果:4
divisionNumber=9.0/2
print(divisionNumber) #输出结果:4.5
divisionNumber=9/2.0
print(divisionNumber) #输出结果:4.5
#/--- 除数或被除数中有任意一个是小数的话,商也会保留小数,反之取整 ---/#求幂运算
powerNumber=2**3 #相当于 2 的 3 次幂,就是 222 关于幂运算大家应该在数学里都很熟悉了
print powerNumber #输出结果:8#小于符号,返回值是 bool 值
lessThan=1<2
print(lessThan) #输出结果:True
lessThan=1<1
print(lessThan) #输出结果:False#大于符号,返回值是 bool 值
moreThan=2>1
print(moreThan) #输出结果:True
moreThan=2>2
print(moreThan) #输出结果:False#不等于符号 返回值是 Bool 值
notEqual=1!=2
print(notEqual) #输出结果:True
notEqual=1!=1
print(notEqual) #输出结果:False#除法运算 // 返回商的整数部分,抛弃余数
divisorNumber=10//3
print(divisorNumber) #输出结果:3#除法运算 % 返回商的余数部分,抛弃商
divisorNumber=10%3
print(divisorNumber) #输出结果:1
divisorNumber=10%1
print(divisorNumber) #输出结果:0 /-- 没有余数则返回 0--/
divisorNumberx=10//3 #divisorNumberx 是商的整数部分
divisorNumbery=10%3 #divisorNumbery 是余数
divisorNumberz=3*divisorNumberx+divisorNumbery #divisorNumberz 是除数乘以商的整数部分加上余数,得到的 divisorNumberz 的值就是被除数
print(divisorNumberz) #输出结果:10#按位与运算 &, 按位与是指一个数字转化为二进制,然后这些二进制的数按位来进行与运算
operationNumber=7&18
print operationNumber #输出结果:2
'''
这个有点绕,稍微多说下,如果对二进制不是太熟的朋友,可以打开电脑自带的计算器,按住 win+q, 输入 "calculator"。
然后在打开的计算器设置成程序员模式, 就是 View(查看)->>programmer(程序员).
然后我们将 7 转为二进制:111, 自动补全 8 位:00000111,然后将 18 转为二进制补全 8 位后得到:00010010
最后将 00000111
跟 00010010 按位进行与运算,
/-
对与运算不熟的朋友可以看看百度百科的介绍,还是很详细的。
http://baike.baidu.com/link?url=lfGJREBvGCY5j7VdF2OO9n2mtIbSyNUD7lZyyY74QIetguL5lXIQUxY38Yr-p4z4WdUvHUKGjw9CDfagiun2Ea
-/
得到结果:00000010
我们都知道 10 二进制→十进制 =2,所以 7 跟 18 的按位与的结果是二进制 10(十进制 2)
'''#按位或运算 |, 按位或是指一个数字转化为二进制,然后这些二进制的数按位来进行或运算
operationNumber=7|18
print operationNumber #输出结果:23 #结题思路和按位与运算的一样,可以参考按位与运算#按位异或
operationNumber=7^18
print operationNumber #输出结果:21 #结题思路和按位与运算的一样,可以参考按位与运算#按位翻转 ~ 按位翻转公式: ~x= - (x+1)
operationNumber=~12 #~12=- (12+1) = -13
print operationNumber #输出结果:-13 #结题思路和按位与运算的一样,可以参考按位与运算#左移 <<
'''
比如 18 左移就是将他的二进制形式 00100100 左移,得到 00100100(36)。
左移规律: 左移一个单位相当于乘 2,左移两个单位相当于乘以 4,左移三个单位相当于乘以 8,
即: 左移 n 个单位相当于乘以 2 的 n 次幂
'''
operationNumber=12<<1
print operationNumber #输出结果:24
operationNumber=3<<3
print operationNumber #输出结果:24#右移 >>
'''
理解左移以后,右移就很好理解了。
右移是左移的逆运算,将对应的二进制数向右移动。
右移规律: 右移一个单位相当于除以 2,右移两个单位相当于除以 4,右移三个单位相当于除以 8,
即: 右移 n 个单位相当于除以 2 的 n 次幂
'''
operationNumber=12>>1
print operationNumber #输出结果:6
operationNumber=12>>2
print operationNumber #输出结果:3#小于等于 <= 比较运算,小于或等于返回一个 bool 值
operationNumber=3<=3
print operationNumber #输出结果:True
operationNumber=3<=2
print operationNumber #输出结果:False#大于等于 >= 比较运算,大于或等于返回一个 bool 值
operationNumber=2>=3
print operationNumber #输出结果:False
operationNumber=3>=2
print operationNumber #输出结果:True#比较两个对象是否相等 ==
operationNumber=3==2
print operationNumber #输出结果:False
operationString="hi"=="hi"
print operationString #输出结果:True#逻辑非 not
operationx=True
operationy=not operationx
print operationy #输出结果:False
operationz=False
print not operationz #输出结果:True#逻辑与 and
'''
True and True = True
True and False = False
False and True = False
False and False = False
'''
print True and True #输出结果:True#逻辑或 or
'''
True or True = True
True or False = True
False or True = True
False or False = False
'''
print False or False #输出结果:False
这里的这些运算可能按位运算会感觉比较麻烦,不过没有关系,大家用多了就熟练了。
1.python 运算符优先级排行榜:
在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。
代码正文 & 讲解:
# coding=utf-8 #优先级的简单实例 priorityNumber=2+1*4 print priorityNumber #输出结果:6#优先级使用实例
#以下优先级排名从高到低,在同一运算中,先执行优先级高的再执行低的,以此类推。#Top 1: 函数调用、寻址、下标
#Top 2: 幂运算 **
priorityNumber=2*2**3
print priorityNumber #输出结果:16#Top 3: 翻转运算 ~
#Top 4: 正负号
print 1+2*-3 #输出结果:-5#Top 5:、/、%
print 2+12/5 #输出结果:2#Top 6:+、-
print 3<<2+1 #输出结果:24#Top 7:<<、>>
#Top 8: 按位 &、^、|
#Top 9: 比较运算符
priority=23+2<=2+17
print priority #输出结果:True#Top 10: 逻辑的 not and or
#Top 11:lambda 表达式
2.python 运算符优先级使用规律:
代码正文 & 讲解:
#python 优先级使用规律 #1、一般情况下是左结合的 #ps: 在没有更高优先级运算符,即只有同级运算符时时从左到右结合 print 1+2+3*5+5 #输出结果:23#2、出现赋值的时候一般是右结合
#ps: 在有赋值运算符时,是右结合,即先算出 1+2 的值以后再赋值给 priority
priority=1+2
print priority #输出结果:23
2.python 运算符优先级大招:
大家可能会觉得 Python 运算符的优先级不容易记忆,而且有时候还容易混淆。在实际运用中根据业务逻辑可能我们知道要先做什么再做什么,但是却忘记 Python 运算符的优先级了,该怎么办?这里教大家一个杀手锏,绝对百试不爽。
代码正文 & 讲解:
#python 运算符优先级大招 '''比如说有这个需求: 去商店买水,买 3 瓶水,每瓶 5 块,再买一个绿箭 (假设绿箭 3 块),总共多少钱? 这个简单的应用非常明显,需要先用乘法再用加法,如果这里你忘记了乘法和加法的优先级,可以这样: ''' print (3*5)+3 #输出结果:18#ps: 这只是一个简单的例子,只是为了告诉大家实际应用中实在不行咱就放大招。有备无患。
Python 表达式基本概念:
python 中,值、变量和运算符共同组成的整体称为表达式
代码正文 & 讲解:
#python 表达式 #1 字符串表达式 "Hello"#2 计算表达式
2+3#3 赋值表达式
first=0#4 变量表达式
first#5 值表达式
3#等等
应上一篇博客Python 基本语法 [二],python 入门到精通 [四]园友的意见,给出浏览博客后的练习。如果大家有什么有意思的题目也可以拿出来一起捣鼓,或者留作下一篇博客的 "博后练习"。
练习:
- 弄清楚与或非二进制运算
- 熟记 python 运算符优先级关系
- 去商店买水,买 3 瓶水,每瓶 5 块,赶上双 11,商店促销,现在每瓶降价 1.5 块,总共多少钱。(需要用放大招和不放大招两种方式)
关于 python 的运算符大家如果有什么疑问或者补充的可以踊跃发言,我们一起探讨。
作 者:请叫我头头哥
出 处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
</div>