Python通过%操作符进行取余运算与字符串格式化的深度解析

 更新时间:2025年09月12日 10:11:15   作者:鸽芷咕  
在 Python 中,百分号 % 是一个多功能的操作符,主要有两种核心用法:取余运算(模运算)和字符串格式化,本文将详细介绍这两种用法及其实际应用场景,感兴趣的小伙伴可以了解下

前言

在 Python 中,百分号 % 是一个多功能的操作符,主要有两种核心用法:取余运算(模运算)和字符串格式化。本文将详细介绍这两种用法及其实际应用场景。

一、取余运算(模运算)

% 作为取余运算符时,用于计算两个数相除后的余数,语法为 a % b,表示计算 a 除以 b 后的余数。

1. 基本用法

# 正数取余
print(7 % 3)   # 输出: 1(7 = 3×2 + 1)
print(10 % 4)  # 输出: 2(10 = 4×2 + 2)
print(8 % 2)   # 输出: 0(整除时余数为0)

# 负数取余
print(-7 % 3)  # 输出: 2(-7 = 3×(-3) + 2)
print(7 % -3)  # 输出: -2(7 = (-3)×(-3) + (-2))
print(-7 % -3) # 输出: -1(-7 = (-3)×2 + (-1))

2. 关键特性

  • 结果的符号与除数(第二个操作数) 保持一致。
  • 满足恒等式:a = (a // b) * b + (a % b)(商×除数 + 余数 = 被除数)。
a, b = 17, 5
print((a // b) * b + (a % b) == a)  # 输出: True(3×5 + 2 = 17)

3. 实际应用场景

判断奇偶性:通过 n % 2 判断结果是 0(偶数)还是 1(奇数)。

def is_even(n):
    return n % 2 == 0

print(is_even(4))  # 输出: True
print(is_even(7))  # 输出: False

判断整除性:若 a % b == 0,则 a 能被 b 整除。

def is_divisible(a, b):
    return a % b == 0

print(is_divisible(10, 5))  # 输出: True
print(is_divisible(7, 3))   # 输出: False

循环取值:在固定范围内循环获取索引(如列表循环访问)。

colors = ["红", "绿", "蓝"]
for i in range(5):
    print(colors[i % 3])  # 循环输出: 红、绿、蓝、红、绿

时间转换:例如将总秒数转换为“分:秒”格式。

total_seconds = 135
minutes = total_seconds // 60  # 2
seconds = total_seconds % 60    # 15
print(f"{minutes}:{seconds}")   # 输出: 2:15

二、字符串格式化

% 作为格式化操作符时,用于将变量插入字符串中,语法为 格式字符串 % 变量,类似其他语言中的“占位符”功能。

1. 基本用法

格式字符串中用 % 开头的占位符表示需要替换的位置,常见占位符如下:

  • %s:字符串(可接收任何类型,自动转换为字符串)
  • %d:整数
  • %f:浮点数
  • %x:十六进制整数(小写)
  • %X:十六进制整数(大写)
name = "Alice"
age = 30
print("姓名: %s, 年龄: %d" % (name, age))  # 输出: 姓名: Alice, 年龄: 30

pi = 3.1415926
print("圆周率: %.2f" % pi)  # 输出: 圆周率: 3.14(保留2位小数)

num = 255
print("十六进制: %x" % num)  # 输出: 十六进制: ff

2. 高级格式化技巧

指定宽度:通过 %Nd(整数)或 %N.Mf(浮点数)控制输出宽度和精度。

print("数字: %5d" % 3)    # 输出: 数字:     3(占5位,右对齐)
print("浮点数: %8.2f" % pi)  # 输出: 浮点数:    3.14(总宽度8,保留2位小数)

左对齐:在宽度前加 - 实现左对齐。

print("左对齐: %-5d" % 3)  # 输出: 左对齐: 3    

字典格式化:使用 %(key)s 从字典中取值,增强可读性。

user = {"name": "Bob", "score": 95}
print("姓名: %(name)s, 分数: %(score)d" % user)  # 输出: 姓名: Bob, 分数: 95

3. 注意事项

  • 占位符数量需与后面的变量数量一致,否则会抛出 TypeError
  • 虽然 Python 3.6+ 引入了更强大的 f-字符串(如 f"姓名: {name}"),但 % 格式化在旧代码中仍常见,需了解其用法。

三、总结

% 操作符在 Python 中有两种核心用法:

  • 取余运算:计算除法余数,用于奇偶判断、整除校验、循环取值等场景,结果符号与除数一致。
  • 字符串格式化:通过占位符替换变量,支持多种数据类型和格式控制,是传统的字符串拼接方式。

根据场景灵活使用 % 的两种功能,能让代码更简洁、高效。在现代 Python 开发中,取余运算仍被广泛使用,而字符串格式化则可根据需求选择 %、f-字符串或 str.format()

到此这篇关于Python通过%操作符进行取余运算与字符串格式化的深度解析的文章就介绍到这了,更多相关Python操作符%内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python进阶之使用selenium爬取淘宝商品信息功能示例

    Python进阶之使用selenium爬取淘宝商品信息功能示例

    这篇文章主要介绍了Python进阶之使用selenium爬取淘宝商品信息功能,结合实例形式详细分析了Python使用selenium与requests模块爬取淘宝商品信息的相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • Python保留小数的6种常用方法

    Python保留小数的6种常用方法

    日常写 Python 代码时,保留小数是高频需求,很多新手只会用round()函数,却不知道它有 坑,也不清楚不同场景该选哪种方法,今天就给大家整理 6 种 Python 保留小数的常用方法,从基础到进阶,代码示例可直接复制运行,需要的朋友可以参考下
    2026-03-03
  • Python变量命名规范的总结

    Python变量命名规范的总结

    在Python编程中,变量命名规范对于编写优雅和可维护的代码至关重要,本文主要介绍了Python变量命名规范的总结,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Python 依赖管理的工具与规范详解

    Python 依赖管理的工具与规范详解

    这篇文章主要介绍了Python 依赖管理的工具与规范详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-05-05
  • python pip特殊用法之pip install -v -e .命令详解

    python pip特殊用法之pip install -v -e .命令详解

    这篇文章主要给大家介绍了关于python pip特殊用法之pip install -v -e .命令的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-09-09
  • Python 异步编程 asyncio简介及基本用法

    Python 异步编程 asyncio简介及基本用法

    asyncio 是 Python 的一个库,用于编写并发代码,使用协程、任务和 Futures 来处理 I/O 密集型和高延迟操作,本文给大家介绍Python 异步编程 asyncio简介及基本用法,感兴趣的朋友一起看看吧
    2025-05-05
  • 基于pytorch实现运动鞋品牌识别功能

    基于pytorch实现运动鞋品牌识别功能

    这篇文章主要给大家介绍了关于如何基于pytorch实现运动鞋品牌识别功能,文中通过图文以及实例代码介绍的非常详细,对大家学习或者使用PyTorch具有一定的参考学习价值,需要的朋友可以参考下
    2024-02-02
  • python爬虫使用cookie登录详解

    python爬虫使用cookie登录详解

    这篇文章主要介绍了python爬虫使用cookie登录详解,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • Python+SymPy实现秒解微积分详解

    Python+SymPy实现秒解微积分详解

    SymPy是一个Python库,专注于符号数学,它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。本文将利用SymPy实现四行代码秒解微积分,感兴趣的可以学习一下
    2022-05-05
  • pytorch中的hook机制register_forward_hook

    pytorch中的hook机制register_forward_hook

    这篇文章主要介绍了pytorch中的hook机制register_forward_hook,手动在forward之前注册hook,hook在forward执行以后被自动执行,下面详细的内容介绍,需要的小伙伴可以参考一下
    2022-03-03

最新评论