Python 取余运算 (%) 原理与切片详解

江屿
江屿
发布时间:2026-10-14| 3人浏览过
原创

本文详解Python中取余运算符(%)的计算逻辑,指出其基于向下取整的商进行计算。通过正数、负数及零的组合案例,解析余数公式“余数=除数-被除数*商”的应用。此外,补充介绍了Python列表切片中[a:b:c]语法及负数下标的索引规则,帮助开发者准确处理数值运算与序列操作。

Python取余运算基本原理

取余运算的核心公式为:余数等于除数减去被除数与商的乘积。

具体表达为:余数 = 除数 - (被除数 × 商)。

在Python中,取余运算的结果取决于整除(即向下取整)所得的商。

取余问题主要涉及以下几种情况:

正数与正数、负数与负数、正数与负数,以及涉及0的情况。

当两个操作数均为正数时:

正数之间的取余运算


#大数/小数:因为得出的商和整除得出的一致,所以直接按照这个公式(余数=除数-被除数*商)即可。
print(9//7) #1
print(9%7)  #2

#小数/大数:因为得出的商和整除得出的一致,所以直接按照这个公式(余数=除数-被除数*商)即可。
#这里也可以说:只要正数与正数是小数/大数 的,商都是0 ,所以余数是他本身。
print(7//9) #0
print(7%9) #7

当两个操作数均为负数时:

负数之间的取余运算


#小数/大数:因为得出的商和整除得出的一致,所以直接按照这个公式(余数=除数-被除数*商)即可。
#因为负负得正,所以整除得出的就是 9//7的值为1,所以余数为 -9-(-7)=-2
print(-9//-7) #1
print(-9%-7)  #-2

#大数/小数:因为得出的商和整除得出的一致,所以直接按照这个公式(余数=除数-被除数*商)即可。
#这里也可以说:只要在负数与负数相除中是大数/小数 的,商都是0 ,所以余数是他本身。
print(-7//-9) #0
print(-7%-9) #-7

当被除数为0时:

涉及0的取余运算


#由于0不能做被除数,所以无论0除以任何数(0除外)的商和余数都为0。

print(0%-1) #0
print(0%1)  #0

当正数与负数混合运算时:

正负数混合的取余运算


#负数/正数
#-7/9=-0.77.. 所以整除的值为-1,也就是向下取整的值,而python中取余是按照整除的商计算的,所以余数为 -7-(9*(-1))=2
print(-7//9)  #-1 
print(-7%9)  #2
#同样的 -9/7=-1.285.. 所以整除的值为-2,余数 -9-7*(-2)=5
print(-9//7)  #-2
print(-9%7)  #5

#正数/负数
#同样的 7/-9=--0.77.. 所以整除的值为-1,余数 7-【-9*(-1)】=-2
print(7//-9)  #-1
print(7%-9)  #-2

#同样的 9/-7=-1.285.. 所以整除的值为-2,余数 9-【-7*(-2)】=-5
print(9//-7)  #-2
print(9%-7)  #-5

Python切片与负数下标详解

补充知识:Python列表切片语法及负数下标的使用。

切片语法 [a:b:c] 表示从区间 [a, b) 内,以步长 c 逐级递增选取元素构成的集合。

例如:定义一个列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]。

表达式 [1:18:3] 表示从索引 1 到 17(不含18)之间,从值 1 开始,每次递增 3 所选取的数字集合,结果为 [1, 4, 7, 10, 13, 16]。

关于负数下标的说明:

列表 (长度为10)
普通下标 0 1 2 3 4 5 6 7 8 9
负数下标 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

以上即为基于Python取余问题(%)的详细解析,希望能为读者提供参考,欢迎继续支持本站获取更多技术内容。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。