%g是什么

简介: `%g` 是 Python 字符串格式化中的一种格式说明符,用于表示浮点数或整数,能自动选择最合适的表示法。当数值为整数时,它显示整数;当数值较大或含小数时,它选择科学记数法或小数点记数法,并去掉无用的零。例如:

%g 是 Python 字符串格式化中一种常见的格式说明符,用于表示浮点数或整数。它是 printf 风格格式化字符串的一部分,具有自动选择浮点数或整数表示法的功能。具体来说,%g 的行为如下:

%g 的作用

  • 自动选择表示法
    • 如果数值可以用不带小数点的整数形式表示(即数值为整数),%g 会将它显示为整数。
    • 如果数值较大或包含小数,%g 会选择最合适的表示法(科学记数法或小数点记数法),并去掉无用的零。

举例说明

# 示例 1:整数
value = 12345
formatted = "%g" % value
print(formatted)  # 输出: 12345

# 示例 2:小数
value = 12345.6789
formatted = "%g" % value
print(formatted)  # 输出: 12345.7

# 示例 3:小数(大数)
value = 0.0000123456789
formatted = "%g" % value
print(formatted)  # 输出: 1.23457e-05

# 示例 4:科学记数法
value = 123456789.0
formatted = "%g" % value
print(formatted)  # 输出: 1.23457e+08
  • 整数形式:对于没有小数部分的数字(如 12345),%g 会将其简单地显示为整数。
  • 小数形式:对于有小数部分但不需要科学记数法的数字(如 12345.6789),%g 会保留适当的小数位数并去掉无用的零。
  • 科学记数法:对于非常小或非常大的数字(如 0.0000123456789 或 123456789.0),%g 会选择使用科学记数法来表示,以更简洁的方式显示数字。

结合 YOLO 代码

在 YOLO 的结果保存代码中:

f.write(("%g " * len(line)).rstrip() % line + "\n")

这里使用 %g 是为了将检测结果中的每个数值(例如类别索引、边界框坐标、置信度等)以简洁而合适的格式保存到文本文件中。使用 %g 可以确保:

  • 边界框的坐标不会显示过多无用的小数位。
  • 置信度等数值以最简洁的方式展示。
  • 整数部分如类别索引可以以整数形式展示。

总结

%g 是一个灵活的格式说明符,适合用于格式化显示各种浮点数和整数。它根据数值的特性自动选择最合适的表示法,适合在需要显示简洁数值的场景中使用,例如在 YOLO 的检测结果保存时,保持结果文件的简洁和可读性。

相关文章
|
JSON API 开发工具
AdonisJs项目初始化
AdonisJs项目初始化
105 0
|
7月前
|
XML 数据安全/隐私保护 数据格式
PyMuPDF 1.24.4 中文文档(七)(3)
PyMuPDF 1.24.4 中文文档(七)
160 0
|
6月前
|
安全 编译器 C++
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
这些是Microsoft Visual C++不同版本的Redistributable安装包,用于32位系统,确保相关应用正常运行。它们提供C++运行时环境,简化部署流程,支持第三方库及框架,并确保应用兼容性。定期更新可修复问题并引入新功能。在空间有限或需解决程序冲突时可考虑删除,但需谨慎操作以防影响应用稳定性和兼容性。删除前请确认无应用依赖,并通过控制面板安全卸载。
476 1
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
|
索引 Python
python 如何将nc文件中的经度从从0-360更改为-180到180,并按照坐标排序
python 如何将nc文件中的经度从从0-360更改为-180到180,并按照坐标排序
|
4月前
|
Ubuntu Shell Python
Ubuntu学习笔记(一):pycharm设置快捷启动图标详解
这篇博客详细讲解了如何在Ubuntu 20.04系统中为PyCharm设置快捷启动图标,包括创建.desktop文件、编辑文件内容以及添加到收藏夹的步骤。
457 0
Ubuntu学习笔记(一):pycharm设置快捷启动图标详解
|
机器学习/深度学习 自然语言处理 数据可视化
【Pytorch神经网络实战案例】30 jieba库分词+训练中文词向量
在NLP中,一般都会将该任务中涉及的词训练成词向量,然后让每个词以词向量的形式型的输入,进行一些指定任务的训练。对于一个完整的训练任务,词向量的练大多发生在预训练环节。
530 0
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
大语言模型定义、概念介绍
大语言模型定义、概念介绍
|
6月前
|
JavaScript API 开发者
Vue 3 为什么同时需要 Ref 和 Reactive?
Vue 3 为什么同时需要 Ref 和 Reactive?

热门文章

最新文章