约 7090 字
约 35 分钟
运算就是用值来做各种变化的游戏,例如 1 + 1
得到 2
,其中 +
是加法的运算符。
关于运算符,请参考 Python 官方文档 - 运算符
Python 使用 =
作为赋值运算符,用于修改变量的值,而非数学中的“等于”。
此外还还可以使用 count += 1
作为 count = count + 1
的简写,其中 +
可以替换为任意算术运算符。
count:int = 0 # 创建变量 count,值为 0
print(count)
count = 4 # 将 count 的值修改为 4
print(count)
count += 3 # 将 count 的值修改为 count + 3
print(count)
Loading...
Python 中变量创建后可以给他赋值其它类型的的值:
age_of_yukari:int = 17 # 类型为 int
age_of_yukari = "17" # 类型为 str
但是建议 不要修改变量的类型。
海象运算符(:=
)是一种特殊的赋值运算符,它不能直接用于给变量赋值,只能在表达式内赋值。例如:
x:int = 0
y:int = 0
sum_squares:int = x**2 + y**2
# 传统做法
x = 5
y = 10
sum_squares = x**2 + y**2
# 使用海象运算符
sum_squares = (x := 5)**2 + (y := 10)**2
并且,赋值运算符(=
)没有返回值,无法作为 if
、while
等控制块的条件,而海象运算符(:=
)可以。
运算符 | 名称 | 示例 | 结果 | 说明 |
---|---|---|---|---|
+ | 加法运算符 | 3 + 5 | 7 | |
- | 减法运算符 | 5 - 3 | 2 | |
* | 乘法运算符 | 5 * 3 | 15 | |
/ | 除法运算符 | 5 / 2 | 2.5 | 无论能否整除,结果类型都是浮点型 |
// | 整除运算符 | 5 // 2 | 2 | 结果向下取整,如果被除数和除数都是整型,则结果为整型,否则结果为浮点型 |
% | 取余运算符 | 5 % 2 | 1 | 5 除以 2,得 2 余 1 |
** | 乘方运算符 | 5 ** 2 | 25 | 5 的 2 次方 |
用于比较两个值的关系,结果为布尔类型。
运算符 | 名称 | 示例 | 结果 |
---|---|---|---|
== | 等于运算符 | 3 == 5 | False |
!= | 不等于运算符 | 3 != 5 | True |
> | 大于运算符 | 5 > 3 | True |
< | 小于运算符 | 5 < 2 | False |
>= | 大于或等于运算符 | 5 >= 5 | True |
<= | 小于或等于运算符 | 5 <= 2 | False |
用于组合多个布尔值。
运算符 | 名称 | 示例 | 结果 | 说明 |
---|---|---|---|---|
and | 逻辑与运算符 | True and False | False | 全部为 True 时结果为 True ,否则结果为 False |
or | 逻辑或运算符 | True or False | True | 全部为 False 时结果为 False ,否则结果为 True |
not | 逻辑非运算符 | not False | True | 将一个布尔值反转 |
位运算用于对整数进行二进制操作。
运算符 | 名称 | 示例 | 结果 | 说明 |
---|---|---|---|---|
& | 位与运算符 | 0b1100 & 0b0110 | 0b0100 | 按二进制位进行计算,两个数在某一位上都是 1 ,则结果在该位为 1 ,否则结果在该位为 0 |
| | 位与运算符 | 0b1100 | 0b0110 | 0b1110 | 按二进制位进行计算,两个数在某一位上都是 0 ,则结果在该位为 0 ,否则结果在该位为 1 |
^ | 异或运算符 | 0b1100 ^ 0b0110 | 0b1010 | 二进制中不同的位结果为 1 ,相同的位结果位 0 |
<< | 左移运算符 | 0b0011 << 2 | 0b1100 | 二进制位向左移动,右侧补 0 |
>> | 右移运算符 | 0b1100 >> 1 | 0b0110 | 二进制位向右移动,左侧补 0 |
~ | 取反运算符 | ~0b1100 | 0b0011 | 二进制位取反,即 1 变为 0 ,0 变为 1 |
运算符存在优先级,和数学一样先乘除,后加减。例如
括号为最高优先级,可以使用括号改变计算顺序。例如
下表为优先级列表,优先级由高到低:
参考:Python 官方文档
运算符 | 说明 | 优先级 |
---|---|---|
(exp) , [exp] , {exp} | 括号表达式 | 最高 |
arr[i] , arr[i:j] , func(args) , obj.attr | 索引,切片,调用,访问 | |
await exp | await 表达式 | |
** | 乘方 | |
+num , -num , ~num | 正号、负号、取反 | |
* , @ , / , // , % | 乘除运算 | |
+ , - | 加减运算 | |
<< , >> | 移位运算 | |
& | 位与 | |
^ | 异或 | |
| | 位或 | |
in , not in , is , is not , < , <= , > , >= , != , == | 判断比较 | |
not exp | 逻辑非 | |
and | 逻辑与 | |
or | 逻辑或 | |
lambda | lambda 表达式 | |
:= | 赋值 | 最低 |
请实现计算圆形的周长和面积。
圆的周长公式为
圆的面积公式为
PI:float = 3.1415926 # 圆周率
radius:float = 15 # 半径
perimeter:float = 0 # 修改此处代码,计算周长
area:float = 0 # 修改此处代码,计算面积
print("半径为", radius, "的圆,周长为", perimeter, "面积为", area)
Loading...
创建于 2025/4/11 03:41:55
更新于 2025/5/14 04:09:24