%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 的检测结果保存时,保持结果文件的简洁和可读性。

相关文章
|
编解码 缓存 并行计算
YOLOv5入门实践(4)——手把手教你训练自己的数据集
YOLOv5入门实践(4)——手把手教你训练自己的数据集
2175 0
YOLOv5入门实践(4)——手把手教你训练自己的数据集
|
15天前
|
人工智能
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
162 2
|
3月前
|
Linux
如何让linux显示器命令行界面不显示
若需在命令行界面快速关闭屏幕,可选方法包括:使用`setterm --blank force`立即关闭屏幕;利用`sudo vbetool dpms off`将显示器置于低功耗模式;在X server环境下执行`xset dpms force off`关闭屏幕;或是针对笔记本通过`echo 0 | sudo tee /sys/class/backlight/*/brightness`关闭背光。以上任一方法均可实现屏幕关闭,部分操作需要管理员权限,屏幕通常会在按键或移动鼠标后自动恢复。
88 9
|
3月前
|
安全 Shell Linux
如何禁止某个用户使用ssh登录
本文介绍了五种禁止用户通过SSH登录的方法:1) 修改`/etc/ssh/sshd_config`文件中的`DenyUsers`和`DenyGroups`来阻止特定用户或用户组登录;2) 将用户的默认shell设置为`/usr/sbin/nologin`或`/bin/false`以禁用其SSH访问;3) 利用PAM(可插入认证模块)通过编辑`/etc/security/sshd.conf`来限制登录权限;4) 通过编辑`/etc/hosts.deny`文件拒绝特定用户的SSH访问;5) 锁定或禁用用户账号以阻止所有类型的登录。每种方法都提供了详细的步骤指导。
312 1
|
机器学习/深度学习 数据挖掘 PyTorch
视觉神经网络模型优秀开源工作:PyTorch Image Models(timm)库(上)
视觉神经网络模型优秀开源工作:PyTorch Image Models(timm)库(上)
|
3月前
|
存储 JSON Serverless
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
参与体验活动生成西游人物图像,既有机会赢取好礼!本次实验在函数计算中内置了flux.1-dev-fp8大模型,通过函数计算+Serverless应用中心一键部署Flux模型,快速生成超写实图像。首次开通用户可领取免费试用额度,部署过程简单高效。完成部署后,您可以通过修改提示词生成各种风格的图像,体验Flux模型的强大绘图能力。
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
|
4月前
|
人工智能 开发者
8月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区8月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
2413 18
|
12月前
|
机器学习/深度学习 JSON 数据挖掘
使用Python调用API接口获取淘宝商品数据
本文介绍了如何使用Python调用API接口获取淘宝商品数据。通过调用淘宝开放平台的API接口,我们可以获取到淘宝商品的详细信息,包括商品名称、价格、销量等。这些数据可以用于进行各种分析,例如商品的价格趋势、销量趋势等。通过Python的强大功能,我们可以更方便地获取和处理这些数据,从而更好地理解淘宝的商品市场。
|
TensorFlow 算法框架/工具 Android开发
使用YOLOv5进行工业检测(如裂纹、划痕、破损等)
使用YOLOv5进行工业检测(如裂纹、划痕、破损等)
1994 1
|
11月前
|
数据采集 JSON JavaScript
C# 解析“JSON“格式数据和网络实战案例 入门
C# 解析“JSON“格式数据和网络实战案例 入门