博客前言
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在计算器语言中运算符大致可以分为5种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。运算符也是计算机里比较好理解的人类语言之一,只要稍微懂点数学的,都能看懂算数运算符。在Python中常见的运算符有: +、-、*、/、**/<、>、!=、//、%、&、|、^、~、>>、<<、<=、>=、==、not、and、or 。在接下来的博文中再一一介绍这些运算符的具体事例。
写在前面
python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它
python运算符基础实例
代码正文&讲解:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# 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运算符优先级
1.python运算符优先级排行榜:
在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。
代码正文&讲解:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# 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运算符优先级使用规律:
代码正文&讲解: