轻松驾驭Python格式化:5个F-String实用技巧分享
F-String
(格式化字符串字面值)是在Python 3.6中引入的,它是一种非常强大且灵活的字符串格式化方法。
它允许你在字符串中嵌入表达式,这些表达式在运行时会被求值并转换为字符串,
这种特性使得F-String
在编写Python
代码时能够更简洁、更直观地处理字符串。
本文总结了5个实用的F-String
技巧,相信一定能让你的代码输出更加的美观,清晰。
1. 大数字
在Python
的数据分析的项目中,经常接触到很大的数字,直接打印出大数字的话,很难看出它究竟有多少位。
n = 100000000
print(n)
# 100000000
用F-String
来格式化,可以将大数字用千分位的形式显示出来。
# 千分位的分隔符用 _ 或者 , 都可以
print(f"{n:_}")
# 100_000_000
print(f"{n:,}")
# 100,000,000
2. 浮点数
对于浮点数,除了可以用千分位分隔之外,还可以指定显示几位小数。
n = 1234.5678
print(f"{n:.2f}")
# 1234.57
print(f"{n:.0f}")
# 1235
print(f"{n:,.3f}")
# 1,234.568
print(f"{n:_.3f}")
# 1_234.568
显示前会自动做四舍五入的计算。
3. 对齐
对齐不仅是让输出更加美观,更重要的是清晰,能够让我们更容易找到输出中的关键的信息。
比如,下面对齐输出name
和value
。
name = "var"
value = 100
# >20 表示右对齐,并且占用20个字符的空间
print(f"{name:>20}: {value}")
# <20 表示左对齐,并且占用20个字符的空间
print(f"{name:<20}: {value}")
# ^20 表示居中对齐,并且占用20个字符的空间
print(f"{name:^20}: {value}")
# 运行结果
var: 100
var : 100
var : 10
占用的20
个字符的空间,包括var
这个字符串,也就是说,占用的空间包含var
和17
个空格。
F-String
格式化输出时,默认是用空格来占位的,我们也可以定义自己的占位符。
# 下面的例子分别用 _ # | 来占位
print(f"{name:_>20}: {value}")
print(f"{name:#<20}: {value}")
print(f"{name:|^20}: {value}")
# 运行结果
_________________var: 100
var#################: 100
||||||||var|||||||||: 100
4. 日期
日期的格式化也是很常用的,python的日期格式化字符都可以在F-String
中使用。
from datetime import datetime
now = datetime.now()
print(f"{now:%Y-%m-%d (%H:%M:%S)}")
# 2024-03-12 (00:17:05)
print(f"{now:%c}")
# Tue Mar 12 00:17:05 2024
print(f"{now:%I%p}")
# 12AM
5. 变量描述
最后这个功能很有用,但估计没多少人知道。
所谓变量描述,也就是说在输出变量的时候,不仅输出变量的值,也输出变量的名字。
比如,一般我们输出变量是这样:
a = 10
b = 20
s = "hello"
print(f"{a + b}")
# 30
print(f"{s}")
# hello
这样输出之后,我们不知道30
和hello
是哪个变量的值。
所以,我们一般会像下面这样输出:
print(f"a + b = {a + b}")
# a + b = 30
print(f"s = {s}")
# s = hello
F-String
有个技巧,可以避免自己手动去输入变量的名字(比如上面的a + b =
和 s =
)。
print(f"{a + b = }")
# a + b = 30
print(f"{s = }")
# s = hello
这样不仅简化的写代码,而且变量名称发生变化的时候,也可以减少修改的地方。
轻松驾驭Python格式化:5个F-String实用技巧分享的更多相关文章
- python 格式化输出%s %f %d
格式说明由%和格式字符组成,如%f,它的作用是将数据按照指定的格式输出.格式说明是由“%”字符开始的. 1.整型输出%d print 'my age is %d'% (26) 说明:%d相当于是一个占 ...
- Python:大神用的贼溜的实用技巧分享
整理字符串输入 整理用户输入的问题在编程过程中极为常见.通常情况下,将字符转换为小写或大写就够了,有时你可以使用正则表达式模块「Regex」完成这项工作.但是如果问题很复杂,可能有更好的方法来解决: ...
- python 格式化输出详解(占位符:%、format、f表达式)——上篇 理论篇
0 - 占位符介绍 要实现字符串的拼接,使用占位符是的一种高效.常用的方式. 举个例子,下面是不使用占位符的一种写法,直接使用加号拼接字符串 name = "Li hua" age ...
- (转)Python格式化字符 %s %d %f
Python格式化字符 %s %d %f 原文:http://blog.csdn.net/huangfu77/article/details/54807835 格式 描述%% 百分号标记 #就是输出一 ...
- Python格式化字符串~转
Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...
- Python格式化字符串
在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...
- python格式化输出【转】
今天写代码时,需要统一化输出格式进行,一时想不起具体细节,用了最笨的方法,现在讲常见的方法进行一个总结. 一.格式化输出 1.整数的输出 直接使用'%d'代替可输入十进制数字: >>> ...
- Python - 格式化字符串的用法
0. 摘要 Python支持多种格式化字符串的方法,包括%-fromatting.str.format().f-strings三种,f-strings是Python3.6以后出现的一种新方法,相比其他 ...
- 【转】Python格式化字符串str.format()
原文地址:http://blog.xiayf.cn/2013/01/26/python-string-format/ 每次使用Python的格式字符串(string formatter),2.7及以上 ...
- Python格式化字符串知多少
字符串格式化相当于字符串模板.也就是说,如果一个字符串有一部分是固定的,而另一部分是动态变化的,那么就可以将固定的部分做成模板,然后那些动态变化的部分使用字符串格式化操作符(%) 替换.如一句问候语: ...
随机推荐
- 【Jmeter】Request1输出作为Request2输入-后置处理器
[Jmeter]基础介绍-详细 接上文,继续介绍Jmeter,本文关注点为如何解决上文中提到的第一个问题,即: 需要实现Request1的返回作为Request2的RequestBody或Header ...
- python3 ACM模式的输入输出例子教学
Python的输入是字符串,所以要自己转类型 strip去掉左右两端的空白符,返回str slipt把字符串按空白符拆开,返回[str] map把list里面的值映射到指定类型,返回[type] EO ...
- vue 导出多页pdf, window.print()实现
如果你对分页打印没思路,而网上的现成方案又不适合,不妨进来看看,也许会对你有帮助. 由于工作环境是局域网,对于插件的安装有限制,所以排除了jspdf + html2canvas的实现方式:采用wind ...
- Linux--Vi编辑命令(插入、替换、命令行模式、撤销)
1.进入插入模式(6个命令) [i] 从目前光标所在处插入 [I] 从目前光标 [a] 从当前光标所在的下一个字符处开始插入 [A] 从光标所在行的最后一个字符处开始插入 [o] 英文小写字母o,在目 ...
- 【若归】背包dp做题笔记
前言: 现在决定未来,未来与过去无关.--波波 前置知识: dd_engi的背包九讲(新版转载) | 背包九讲--全篇详细理解与代码实现 背包问题 (附单调队列优化多重背包 | 背包问题入门(单调队列 ...
- react 八千字长文深入了解react合成事件底层原理,原生事件中阻止冒泡是否会阻塞合成事件?
壹 ❀ 引 在前面两篇文章中,我们花了较大的篇幅介绍react的setState方法,在介绍setState同步异步时提到,在react合成事件中react对于this.state更新都是异步,但在原 ...
- 从零开始学正则(七:终章),详解常用正则API与你可能不知道的正则坑
壹 ❀ 引 花了差不多半个月的晚上时间,正则入门学习也步入尾声了,当然正则的学习还将继续.不得不说学习成效非常明显,已能看懂大部分正则以及写出不太复杂的正则,比如帮组长写正则验证文件路径正确性,再如 ...
- NC20568 [SCOI2012]滑雪与时间胶囊
题目链接 题目 题目描述 a180285非常喜欢滑雪.他来到一座雪山,这里分布着M条供滑行的轨道和N个轨道之间的交点(同时也是景点),而且每个景点都有一编号i(1 ≤ i ≤ N)和一高度Hi.a18 ...
- 【译】IEEE白皮书 6G 太赫兹技术的基本原理 2023版
第一章 简介 太赫兹波是介于微波和光波之间的光谱区域,频率从 0.1THz ~ 10THz 之间,波长在 3mm ~ 30μm 之间.提供大块连续的频带范围以满足对 Tbit/s 内极高数据传输速率的 ...
- [WPF] MediaElement播放HDR视频泛黄、颜色显示不正确应该如何解决?
当我们在使用MediaElement控件播放HDR视频时会遇到颜色发灰.泛黄的情况,难道是因为控件做的有问题? 其实并不是程序问题,只是我们普通的应用程序工作在8bit色深的环境中,而HDR色深为10 ...