转载

Python运算符,python入门到精通[五]

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在计算器语言中运算符大致可以分为5种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。运算符也是计算机里比较好理解的人类语言之一,只要稍微懂点数学的,都能看懂算数运算符。在Python中常见的运算符有:+、-、*、/、**/<、>、!=、//、%、&、|、^、~、>>、<<、<=、>=、==、not、and、or。在接下来的博文中再一一介绍这些运算符的具体事例。

Python运算符,python入门到精通[五]

v 写在前面

python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它

v 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

这里的这些运算可能按位运算会感觉比较麻烦,不过没有关系,大家用多了就熟练了。

v python运算符优先级

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+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表达式

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: 这只是一个简单的例子,只是为了告诉大家实际应用中实在不行咱就放大招。有备无患。

v Python表达式

Python表达式基本概念:

python中,值、变量和运算符共同组成的整体称为表达式

代码正文&讲解:

#python表达式 #1 字符串表达式 "Hello"  #2 计算表达式 2+3  #3 赋值表达式 first=0  #4 变量表达式 first  #5 值表达式 3  #等等

v 博后练习

应上一篇博客 Python基本语法[二],python入门到精通[四] 园友的意见,给出浏览博客后的练习。如果大家有什么有意思的题目也可以拿出来一起捣鼓,或者留作下一篇博客的"博后练习"。

练习:

  • 弄清楚与或非二进制运算
  • 熟记python运算符优先级关系
  • 去商店买水,买3瓶水,每瓶5块,赶上双11,商店促销,现在每瓶降价1.5块,总共多少钱。(需要用放大招和不放大招两种方式)

v 博客总结

关于python的运算符大家如果有什么疑问或者补充的可以踊跃发言,我们一起探讨。

作 者: 请叫我头头哥

出 处: http://www.cnblogs.com/toutou/

关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我

声援博主:如果您觉得文章对您有帮助,可以点击文章右下角 【推荐】 一下。您的鼓励是作者坚持原创和持续写作的最大动力!

正文到此结束
Loading...