1、算术运算符
Python 中常用运算符:
运算符 | 说明 | 实例 | 结果 |
---|---|---|---|
+ | 加 | 22.4 + 15 | 37.4 |
- | 减 | 4.56 - 0.56 | 4 |
* | 乘 | 5 * 3 | 15 |
/ | 除法(和数学中的规则一样) | 8 / 2 | 4 |
// | 整除(只保留商的整数部分) | 7 // 2 | 3 |
% | 取模,即返回除法的余数 | 7 % 2 | 1 |
** | 次方运算,即返回 x 的 y 次方 | 2 ** 4 | 16,即 2^4 |
+加法运算符:
m = 10
n = 90
sum1 = m + n
print(sum1)
#当+用于字符串时,还可以拼接字符串
name = "方唐镜"
url = "江苏苏州"
age = 18
info = name + "的住址是" + url + ",已经" + str(age) + "岁了。"
print(info)
执行结果:
100
方唐镜的住址是江苏苏州,已经18岁了。
-减法运算符:
m = 100
n = 97
sum1 = m - n
print(sum1)
x = 45
y = -x
print(y)
执行结果:
3
-45
*乘法运算符:
n = 4 * 25
m = 34.5 * 6
print(n, m)
#将n个字符串连接
str = "hello "
print(str * 4)
执行结果:
100 207.0
hello hello hello hello
/ 和 // 除法运算符:
print("--------整数不能除尽-----------")
print("24/7 =", 24/7)
print("24//7 =", 24//7)
print("24.0//7 =", 24.0//7)
print("--------整数能除尽-----------")
print("25/5 =", 25/5)
print("25//5 =", 25//5)
print("25.0//5 =", 25.0//5)
print("--------小数除法-----------")
print("12.4/3.5 =", 12.4/3.5)
print("12.4//3.5 =", 12.4//3.5)
执行结果:
/
的计算结果返回的总是小数,不管是否能除尽,也不管参与运算的是整数还是小数。- 当有小数参与运算时,
//
返回的结果才是小数,否则就是整数。
--------整数除不尽-----------
24/7 = 3.4285714285714284
24//7 = 3
24.0//7 = 3.0
--------整数能除尽-----------
25/5 = 5.0
25//5 = 5
25.0//5 = 5.0
--------小数除法-----------
12.4/3.5 = 3.542857142857143
12.4//3.5 = 3.0
%求余运算符:
print("-----整数求余-----")
print("7%2 =", 7 % 2)
print("7%-2 =", 7 % -2)
print("-----小数求余-----")
print("7.7%2.2 =", 7.7 % 2.2)
print("-7.7%2.2 =", -7.7 % 2.2)
print("-7.7%-2.2 =", -7.7 % -2.2)
print("---整数和小数运算---")
print("23.4%5 =", 23.4 % 5)
print("23%4.5 =", 23 % 4.5)
print("23.4%-5 =", 23.4 % -5)
print("-23%4.5 =", -23 % 4.5)
print("-23%-4.5 =", -23 % -4.5)
执行结果:
- 求余运算本质还是是除运算,所以第二个数字不能是 0,不然会报 ZeroDivisionError 错误。
- 只有当第二个数字是负数时,求余的结果才是负数。
- 求余运算两边的数字都是整数时,求余的结果也是整数;但是只要有一个数字是小数,求余的结果就是小数。
-----整数求余-----
7%2 = 1
7%-2 = -1
-----小数求余-----
7.7%2.2 = 1.0999999999999996
-7.7%2.2 = 1.1000000000000005
-7.7%-2.2 = -1.0999999999999996
---整数和小数运算---
23.4%5 = 3.3999999999999986
23%4.5 = 0.5
23.4%-5 = -1.6000000000000014
-23%4.5 = 4.0
-23%-4.5 = -0.5
**次方运算符:
print('----次方运算----')
print('3**2 =', 3**2)
print('2**5 =', 2**5)
print('----开方运算----')
print('9**(1/2) =', 9**(1/2))
print('32**(1/5) =', 32**(1/5))
执行结果:
----次方运算----
3**2 = 9
2**5 = 32
----开方运算----
9**(1/2) = 3.0
32**(1/5) = 2.0
2、赋值运算符
扩展赋值运算符:
运算符 | 说 明 | 用法举例 | 等价形式 |
---|---|---|---|
= | 最基本的赋值运算 | x = y | x = y |
+= | 加赋值 | x += y | x = x + y |
-= | 减赋值 | x -= y | x = x - y |
*= | 乘赋值 | x *= y | x = x * y |
/= | 除赋值 | x /= y | x = x / y |
%= | 取余数赋值 | x %= y | x = x % y |
**= | 幂赋值 | x **= y | x = x ** y |
//= | 取整数赋值 | x //= y | x = x // y |
&= | 按位与赋值 | x &= y | x = x & y |
|= | 按位或赋值 | x |= y | x = x | y |
^= | 按位异或赋值 | x ^= y | x = x ^ y |
<<= | 左移赋值 | x <<= y | x = x << y,这里的 y 指的是左移的位数 |
>>= | 右移赋值 | x >>= y | x = x >> y,这里的 y 指的是右移的位数 |
a = 15
b = 6
c = a + b
print("c 的值为:", c)
c += a
print("c 的值为:", c)
c *= a
print("c 的值为:", c)
c /= a
print("c 的值为:", c)
c %= a
print("c 的值为:", c)
c **= a
print("c 的值为:", c)
c //= a
print("c 的值为:", c)
执行结果:
c 的值为: 21
c 的值为: 36
c 的值为: 540
c 的值为: 36.0
c 的值为: 6.0
c 的值为: 470184984576.0
c 的值为: 31345665638.0
连续赋值运算:
将赋值表达式的值再赋值给另外一个变量,这就构成了连续赋值,如:
a = b = c = 10
c = 100 这个子表达式的值是 10,b = c = 10 表示将 c = 10 的值赋给 b,因此 b 的值也是 10。以此类推,a 的值也是 10。
所以a、b、c 三个变量的值都是 10。
3、比较运算符
比较运算符 | 说明 |
---|---|
大于,如果> 前面的值大于后面的值,则返回 True,否则返回 False。 | |
< | 小于,如果< 前面的值小于后面的值,则返回 True,否则返回 False。 |
== | 等于,如果== 两边的值相等,则返回 True,否则返回 False。 |
>= | 大于等于(等价于数学中的 ≥),如果>= 前面的值大于或者等于后面的值,则返回 True,否则返回 False。 |
<= | 小于等于(等价于数学中的 ≤),如果<= 前面的值小于或者等于后面的值,则返回 True,否则返回 False。 |
!= | 不等于(等价于数学中的 ≠),如果!= 两边的值不相等,则返回 True,否则返回 False。 |
比较运算符的使用实例:
print("89是否大于100:", 8 > 100)
print("24*5是否大于等于76:", 24*5 >= 80)
print("45.6是否等于45.6:", 45.6 == 45.6)
print("45是否等于45.0:", 45 == 45.0)
print("False是否小于True:", False < True)
print("True是否等于True:", True == True)
执行结果:
89是否大于100: False
24*5是否大于等于76: True
45.6是否等于45.6: True
45是否等于45.0: True
False是否小于True: True
True是否等于True: True
4、逻辑运算符
运算符 | 含义 | 基本格式 | 说明 |
---|---|---|---|
and | 逻辑与运算,等价于“且” | a and b | 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。 |
or | 逻辑或运算,等价于“或” | a or b | 当 a 和 b 两个表达式都为假时,a or b 的结果才是假,否则为真。 |
not | 逻辑非运算,等价于“非” | not a | 如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真。相当于对 a 取反。 |
对于 and 逻辑与运算,两边的值都为真最终结果才为真,但是只要其中有一个值为假,那么最终结果就是假:
- 如果左边表达式的值为假,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,最终结果都是假,此时 and 会把左边表达式的值作为最终结果。
- 如果左边表达式的值为真,那么最终值是不能确定的,and 会继续计算右边表达式的值,并将右边表达式的值作为最终结果
对于 or 逻辑或运算,两边的值都为假最终结果才为假,只要其中有一个值为真,那么最终结果就是真:
- 如果左边表达式的值为真,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,最终结果都是真,此时 or 会把左边表达式的值作为最终结果。
- 如果左边表达式的值为假,那么最终值是不能确定的,or 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
5、位运算符
位运算符 | 说明 | 使用形式 | 举 例 |
---|---|---|---|
& | 按位与 | a & b | 4 & 5 |
| | 按位或 | a | b | 4 | 5 |
按位异或 | a ^ b | 4 ^ 5 | |
~ | 按位取反 | ~a | ~4 |
<< | 按位左移 | a << b | 4 << 2,表示整数 4 按位左移 2 位 |
>> | 按位右移 | a >> b | 4 >> 2,表示整数 4 按位右移 2 位 |
按位与&
按位与& 运算符规则:只有两个都是1结果才为1,其余情况都为0
第一个Bit位 | 第二个Bit位 | 结果 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
实例:
print(12 & 5)
执行结果:
4
12 & 5二进制位进行&
与运算过程如下:
0000 1100
& 0000 0101
-------------
0000 0100
按位或 |
按位或 | 运算符规则:只有两个都是0结果才为0,其余情况都为1
第一个Bit位 | 第二个Bit位 | 结果 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
实例:
print(12 | 5)
执行结果:
13
12 | 5二进制位进行|
或运算过程如下:
0000 1100
| 0000 0101
-------------
0000 1101
按位异或^
按位异或^ 运算符的规则:两个值相同结果为0,不同结果为1
第一个Bit位 | 第二个Bit位 | 结果 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
实例:
print(12 ^ 5)
执行结果:
9
12 ^ 5二进制位进行^
或运算过程如下:
0000 1100
^ 0000 0101
-------------
0000 1001
6、运算符优先级和结合性
结合性:先执行左边的叫左结合性,先执行右边的叫右结合性
从上到下优先级逐渐减低:
运算符说明 | Python运算符 | 结合性 | 优先级顺序 |
---|---|---|---|
小括号 | ( ) | 无 | 高 |
索引运算符 | x[i] 或 x[i1: i2 [:i3]] | 左 | ︿ |
属性访问 | x.attribute | 左 | | |
乘方 | ** | 右 | | |
按位取反 | ~ | 右 | | |
符号运算符 | +(正号)、-(负号) | 右 | | |
乘除 | *、/、//、% | 左 | | |
加减 | +、- | 左 | | |
位移 | >>、<< | 左 | | |
按位与 | & | 右 | | |
按位异或 | 左 | | | |
按位或 | | | 左 | | |
比较运算符 | ==、!=、>、>=、<、<= | 左 | | |
is 运算符 | is、is not | 左 | | |
in 运算符 | in、not in | 左 | | |
逻辑非 | not | 右 | | |
逻辑与 | and | 左 | | |
逻辑或 | or | 左 | | |
逗号运算符 | exp1, exp2 | 左 | 低 |
到此这篇关于Python运算符的使用简单介绍的文章就介绍到这了,更多相关Python运算符 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!