本文来自异想之旅公开发布的Python教程,原文地址:https://www.yuque.com/yxzl/python
例 01 数值运算
计算机最古老的用途是数值计算,所以这固然也是所有编程语言最重要的部分。对于数值的运算符如下:
运算符 | 说明 | 样例 | 特殊说明 |
---|---|---|---|
所有 | float 运算在所有计算中均可能出现数位错误,如:0.1 * 3 输出 0.300...004 | ||
+ | 加法运算 | 1 + 1 输出 2 | |
- | 加法运算 | 1 - 1 输出 0 | |
* | 乘法运算 | 2 * 3 输出 6 | |
/ | 除法运算 | 3 / 2 输出 1.5 | 无论结果是否为整数都返回 float 类型 |
% | 取余运算 | 10 % 3 输出 1 | |
** | 次幂运算 | 2 ** 3 输出 8 2 ** 0.5 输出 1.414... | 也可以用函数实现:pow(2, 3) |
// | 整除运算 | 10 // 3 输出 1 | 返回 int 类型,舍弃小数而非四舍五入 |
代码实现如下:
a = 21
b = 10
c = 0
c = a + b
print ("1: c 的值为:", c)
c = a - b
print ("2: c 的值为:", c)
c = a * b
print ("3: c 的值为:", c)
c = a / b
print ("4: c 的值为:", c)
c = a % b
print ("5: c 的值为:", c)
a = 2
b = 3
c = a**b
print ("6: c 的值为:", c)
a = 10
b = 5
c = a//b
print ("7: c 的值为:", c)
输出内容:
1: c 的值为: 31
2: c 的值为: 11
3: c 的值为: 210
4: c 的值为: 2.1
5: c 的值为: 1
6: c 的值为: 8
7: c 的值为: 2
例 02 赋值运算
计算机最古老的用途是数值计算,所以这固然也是所有编程语言最重要的部分。对于数值的运算符如下:
运算符 | 说明 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c _= a 等效于 c = c _ a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取余赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 整除赋值运算符 | c //= a 等效于 c = c // a |
代码实现如下:
a = 21
b = 10
c = 0
c = a + b
print ("1 - c 的值为:", c)
c += a
print ("2 - c 的值为:", c)
c *= a
print ("3 - c 的值为:", c)
c /= a
print ("4 - c 的值为:", c)
c = 2
c %= a
print ("5 - c 的值为:", c)
c **= a
print ("6 - c 的值为:", c)
c //= a
print ("7 - c 的值为:", c)
输出内容:
1 - c 的值为: 31
2 - c 的值为: 52
3 - c 的值为: 1092
4 - c 的值为: 52.0
5 - c 的值为: 2
6 - c 的值为: 2097152
7 - c 的值为: 99864
除此之外,Python3.8 版本新增海象运算符 :=
,可在表达式内部为变量赋值。实例如下:
if n := 10 != 0:
print(n)
# 输出:10
例 03 位运算(按需了解)
鉴于在实用领域位运算使用较少,加上与其它编程语言完全一样的语法,这里不再赘述位运算的运算符详解,直接贴出 菜鸟教程《Python3:运算符》 的样例代码。如果你希望详细了解这一内容,可以点击超链接访问官网。
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b # 12 = 0000 1100
print ('#1 c的值为:', c)
c = a | b # 61 = 0011 1101
print ('#2 c的值为:', c)
c = a ^ b # 49 = 0011 0001
print ('#3 c的值为:', c)
c = ~a # -61 = 1100 0011
print ('#4 c的值为:', c)
c = a << 2 # 240 = 1111 0000
print ('#5 c的值为:', c)
c = a >> 2 # 15 = 0000 1111
print ('#6 c的值为:', c)
输出内容:
#1 c的值为: 12
#2 c的值为: 61
#3 c的值为: 49
#4 c的值为: -61
#5 c的值为: 240
#6 c的值为: 15
Python 的运算顺序基本符合数学中的定义,同时也支持通过使用小括号来改变运算顺序。但是 Python 只能使用小括号,如果有多级运算顺序需要改变,只需要多嵌套几层小括号就好,不要随意使用中括号和大括号,它们通常有特殊含义。
下表中列出的是 Python 中所有运算符的优先级关系。部分内容我们赞数没有说到,大家参考已经掌握的即可。