当前位置:首页 > 科技  > 软件

通过f-string编写简洁高效的Python格式化输出代码

来源: 责编: 时间:2024-06-05 17:45:58 236观看
导读Python 3.6中引入的f-string是Python中最常用的特征之一,它可以让我们编写更干净、更高效和更易于维护的代码,我们今天就由浅入深来详细介绍使用它的一些技巧。对齐文本在格式化输出时,对齐对可读性至关重要。无论是生成

Python 3.6中引入的f-string是Python中最常用的特征之一,它可以让我们编写更干净、更高效和更易于维护的代码,我们今天就由浅入深来详细介绍使用它的一些技巧。VqO28资讯网——每日最新资讯28at.com

VqO28资讯网——每日最新资讯28at.com

对齐文本

在格式化输出时,对齐对可读性至关重要。无论是生成报告、记录数据还是创建用户界面,对齐的文本看起来都更干净,更易于阅读。VqO28资讯网——每日最新资讯28at.com

variable = "some text" print(f"|{variable:>30}|") print(f"|{variable:<30}|") print(f"|{variable:^30}|")

也可以用选择的其他的字符填充空格,例如:VqO28资讯网——每日最新资讯28at.com

variable = "some text" print(f"|{variable:*^30}|")

VqO28资讯网——每日最新资讯28at.com

这些选项提供了一种通用的方式来格式化文本输出,使其更具可读性和视觉吸引力。VqO28资讯网——每日最新资讯28at.com

日期和时间格式

处理日期和时间是编程中的一项常见任务。Python的datetime模块为此提供了一组丰富的工具,f-strings可以更容易按照自己的喜好格式化日期和时间。VqO28资讯网——每日最新资讯28at.com

from datetime import datetime now = datetime.now() print(f"Date: {now:%d-%m-%Y}") print(f"Time: {now:%H:%M:%S}") print(f"Locale's Date and Time: {now:%c}") print(f"Time in AM/PM format: {now:%I:%M %p}")

VqO28资讯网——每日最新资讯28at.com

自定义日期和时间信息的输出,可以轻松地以人类可读的格式显示时间戳。VqO28资讯网——每日最新资讯28at.com

带分隔符的数字

在代码中处理数字可能会很麻烦,尤其是在可读性很重要的时候。f-string中直接使用几千分隔符来格式化大的数字:VqO28资讯网——每日最新资讯28at.com

n = 1000000000 print(f"{n:_}") # Outputs: 1_000_000_000 print(f"{n:,}") # Outputs: 1,000,000,000

在f-string中使用下划线(_)或逗号(,)作为分隔符可以使数字更具可读性。这种做法在处理财务数据、大型数据集或任何清晰度至关重要的应用程序时特别有用。VqO28资讯网——每日最新资讯28at.com

控制十进制精度

在处理浮点数时,小数位数的表示通常是至关重要的。f字符串提供了一种简单的方法来实现这种精度。VqO28资讯网——每日最新资讯28at.com

num = 13.234 print(f"{num:.2f}") # Result: 13.23

将数字四舍五入以仅显示小数点后两位。也可以完全删除小数点后十位:VqO28资讯网——每日最新资讯28at.com

print(f"{num:.0f}") # Result: 13

去掉小数点后的数位,就得到一个整数。还可以使用%符号打印百分比。VqO28资讯网——每日最新资讯28at.com

value = 0.75321 print(f"{value:.2%}") # Output: 75.32%

页可以将它与千位分隔符配对:VqO28资讯网——每日最新资讯28at.com

num = 13.234 print(f"{num:,.2%}") # Result: 1,323.40%

这种特性的组合在科学研究、金融和任何需要精确控制数字格式的情况下特别有用。VqO28资讯网——每日最新资讯28at.com

快速调试内联表达式

f-strings可以使调试过程更容易。不需要编写多行来显示变量值,可以直接在f-string中包含表达式进行快速检查,并且可以利用花括号内的等号(=)来同时显示表达式及其结果。VqO28资讯网——每日最新资讯28at.com

from dataclasses import dataclass @dataclass class Person:    name: str    age: int  person1 = Person(name="Alice", age=30) person2 = Person(name="Bob", age=25)  print(f"{person1.name = }, age {person1.age = }, {person2.name = }, age {person2.age = }")

VqO28资讯网——每日最新资讯28at.com

f - string中的条件表达式

也可以直接在f - string中使用条件表达式。这可以方便地创建更动态的输出,而不必编写单独的条件语句。VqO28资讯网——每日最新资讯28at.com

score = 85 print(f"Your score is {score}, which is {'passing' if score >= 50 else 'failing'}.")

这一行代码检查score的值,并在字符串中包含适当的文本。这是在字符串格式中添加条件逻辑的一种简明方法。VqO28资讯网——每日最新资讯28at.com

总结

f - string是一个非常强大的字符串格式化技术,可以优雅地表达Python字符串。它可以通过一个迷你语法满足我们基本上的所有要求,甚至运行字符串的表达式。这对于我们日常的开发是非常有帮助的。VqO28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-92162-0.html通过f-string编写简洁高效的Python格式化输出代码

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 我发现了用 Python 编写简洁代码的秘诀!

下一篇: 45 个每个开发人员都应该知道的 JavaScript 超级技巧

标签:
  • 热门焦点
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • 从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz&ldquo;难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?&rdquo;这一番话,出自百合网联合创
  • 阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • 重估百度丨大模型,能撑起百度的“今天”吗?

    自象限原创 作者|程心 罗辑2023年之前,对于自己的&ldquo;今天&rdquo;,百度也很迷茫。&ldquo;新业务到 2022 年底还是 0,希望 2023 年出来一个 1。&rdquo;这是2022年底,李彦宏
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    经过了一段时间的密集爆料,昨日iQOO官方如期对外宣布:将于5月23日推出全新的iQOO Neo8系列新品,官方称这是一款拥有旗舰级性能调校的作品。随着发布时
Top