国际访客建议访问 Primers 编程伙伴 国际服 以获得更好的体验。 快速访问 Python 基础语法 基本运算

# Python 的基本运算

运算就是用值来做各种变化的游戏,例如 1 + 1 得到 2,其中 + 是加法的运算符

Python 的所有运算符都是英文字符,输入法自动输入中文符号是新手常见的错误,请注意区分。

关于运算符,请参考 Python 官方文档 - 运算符

# 赋值运算符

Python 使用 = 作为赋值运算符,用于修改变量的值,而非数学中的“等于”。
此外还还可以使用 count += 1 作为 count = count + 1 的简写,其中 + 可以替换为任意算术运算符。

# 动态类型

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

并且,赋值运算符(=)没有返回值,无法作为 ifwhile 等控制块的条件,而海象运算符(:=)可以。

使用海象运算符(:=)需要 Python 版本 \(\geq\) 3.8

# 算术运算符

运算符 名称 示例 结果 说明
+ 加法运算符 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 变为 00 变为 1

# 优先级

运算符存在优先级,和数学一样先乘除,后加减。例如 \(3 + 5 * 2\) 结果为 \(13\)
括号为最高优先级,可以使用括号改变计算顺序。例如 \((3 + 5) * 2\) 结果为 \(16\)

下表为优先级列表,优先级由高到低:

没有必要全部记住,大部分符合直觉,拿不准时请使用括号。 部分运算符目前还没有学习,请暂时放下,将在后面的章节中学习。

参考: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 逻辑或
if – else 条件表达式
lambda lambda 表达式
:= 赋值 最低

# 练习

请实现计算圆形的周长和面积。

  • 圆的周长公式为 \(C = 2 \pi r\)

  • 圆的面积公式为 \(S = \pi r^2\)

本文 更新于: 2025-05-31 19:53:11 创建于: 2025-05-31 19:53:11