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次幂,就是2*2*2 关于幂运算大家应该在数学里都很熟悉了
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

python运算符优先级

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+1*2/5      #输出结果:2

#Top 6:+、-
print 3<<2+1      #输出结果:24

#Top 7:<<、>>

#Top 8:按位&、^、|

#Top 9:比较运算符
priority=2*3+2<=2+1*7
print priority      #输出结果:True

#Top 10:逻辑的not and or

#Top 11:lambda表达式

python运算符优先级使用规律

#python优先级使用规律
#1、一般情况下是左结合的
#ps:在没有更高优先级运算符,即只有同级运算符时时从左到右结合
print 1+2+3*5+5      #输出结果:23

#2、出现赋值的时候一般是右结合
#ps:在有赋值运算符时,是右结合,即先算出1+2的值以后再赋值给priority
priority=1+2
print priority       #输出结果:23

python运算符优先级大招

大家可能会觉得Python运算符的优先级不容易记忆,而且有时候还容易混淆。在实际运用中根据业务逻辑可能我们知道要先做什么再做什么,但是却忘记Python运算符的优先级了,该怎么办?这里教大家一个杀手锏,绝对百试不爽。

#python运算符优先级大招
'''比如说有这个需求:
        去商店买水,买3瓶水,每瓶5块,再买一个绿箭(假设绿箭3块),总共多少钱?
   这个简单的应用非常明显,需要先用乘法再用加法,如果这里你忘记了乘法和加法的优先级,可以这样:
'''
print (3*5)+3       #输出结果:18

#ps: 这只是一个简单的例子,只是为了告诉大家实际应用中实在不行咱就放大招。有备无患。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容