python格式化字符串_Python的3种字符串格式化方法,哪种你最喜欢?
文末扫二维码领【Python开源项目包】
赠书×大厂笔面试题:秋招一直当炮灰?提升你实力的机会来了!
黄伟呢 | 作者数据分析与统计学之美 | 来源
1
3种字符串格式化工具的简单介绍
python2.5版本之前,我们使用的是老式字符串格式化输出%s。
从python3.0版本开始起(python2.6同期发布),Python中同时支持两个版本的格式化,多出来的一个新版本就是利用format()函数,进行格式化输出。
但是python3.6版本后,又引入了一种新的字符串格式化方式f-string。从%s格式化到format格式化再到f-string格式化,格式化的方式越来越直观,f-string的效率也较前两个高一些,使用起来也比前两个更简单一些。
2
3种字符串格式化工具的应用对比
1.基本用法
这里首先先介绍这3个工具的基本用法,基本格式如下:
%格式化:占位符%,搭配%符号一起使用;
format()格式化:占位符{},搭配format()函数一起使用;
f-string格式化:占位符{},搭配f符号一起使用;
2.对比使用,观察各自的特点
"%s张飞、%s关羽、%s刘备、%s赵云" % (
结果如下:
%格式化
此种方式只支持固定形式的格式化填充,给的顺序和填充顺序完全一致。
a =
结果如下:
format()格式化
此种方式不仅支持固定形式的格式化填充,还支持位置格式化填充,即共有三种形式:
第一种方式:固定形式的格式化填充,给的顺序和填充顺序完全一致。
第二种方式:大括号{ }中写的是format()传入值所对应的下标。
第三种方式:大括号{ }中的变量,和format()传入值是一一对应的。
# 第一种方式
结果如下:
f-string格式化
此种方式的填充,用起来更加随意,直接在{}中输入变量即可,极其方便,我们用一个简单的案例看看。
# 直接在{}中输入变量即可,位置随意放
结果如下:
3.填充功能对比
首先我们要知道填充的概念是什么,只有知道了它的概念,才能够灵活运用。
概念:当指定了字符串最终的长度,但是现有的字符串没有那么长,那么我们就用某种字符(填充字符)来填满至这个长度,这就是“填充”。
%格式化
格式:"%10s" % ("字符串"),使用前仔细观察书写格式;
含义:上述10代表字符串的填充长度。如果字符串的长度,大于填充长度,填充长度无效;如果字符串的长度,小于填充长度,则会将字符串长度填充至指定的填充长度;
注意:此种填充,默认是在字符串左侧填充;
a =
结果如下:
format()格式化
格式:"{:10}".format("字符串"),使用前仔细观察书写格式;
含义:上述10代表字符串的填充长度。如果字符串的长度,大于填充长度,填充长度无效;如果字符串的长度,小于填充长度,则会将字符串长度填充至指定的填充长度;
注意:此种填充,默认是在字符串右侧填充;
a =
结果如下:
f-string格式化
格式:f"{name1:10}",使用前仔细观察书写格式;
含义:上述10代表字符串的填充长度,name1代表某个字符串变量。如果字符串的长度,大于填充长度,填充长度无效;如果字符串的长度,小于填充长度,则会将字符串长度填充至指定的填充长度;
注意:此种填充,默认是在字符串右侧填充;
"黄同学"
结果如下:
4.对齐功能对比
首先我们要知道对齐的概念是什么,只有知道了它的概念,才能够灵活运用。
概念:"对齐"要与"填充"一起使用,才会显得有意义。当我们进行填充的时候,我们可以选择只在字符串左侧填充,也可以选择只在字符串右侧填充,还可以选择在字符串两侧填充(字符串居中显示的填充方式);
%s
实现对齐功能,只有左对齐和右对齐;
# 左填充a = '%10s' % ('黄同学')print(a,len(a))
# 右填充b = '%-10s' % ('黄同学')print(b,len(b))
结果如下:
format()
实现对齐功能,不仅有左对齐和右对齐,还有居中对齐;
# 左填充a = '{:>10}'.format('黄同学')print(a,len(a))
# 右填充b = '{:<10}'.format('黄同学')print(b,len(b))
# 居中填充c = '{:^10}'.format('黄同学')print(c,len(c))
结果如下:
f-string
实现对齐功能,不仅有左对齐和右对齐,还有居中对齐;
"黄同学"
结果如下:
5.使用“任意符号”完成填充功能
这个知识点必须在讲完填充和对齐后,才能为大家演示。其实没有为什么,就是语法是这样的,我们就必须这样做。
%格式化
旧版语法的%格式化,使用"特定符号"填充,很麻烦,不直接,你也不用去管。这里主要看新版语法中format()格式化和f-string格式化,进行"特定符号"填充。
format()格式化
# 左填充a = '{:_>10}'.format('黄同学')print(a,len(a))
# 右填充b = '{:_<10}'.format('黄同学')print(b,len(b))
# 居中填充c = '{:_^10}'.format('黄同学')print(c,len(c))
结果如下:
f-string格式化
"黄同学"
结果如下:
6.与“数字”相关的格式化填充技巧
经过前面的学习和叙述,我们已经知道这3种方法,都是完成字符串格式化的操作的,但是为何它们又可以填充数字呢?
原因:Python自动帮我们做了一次隐式转换,但是这种隐式转换是需要付出代价的,它会消耗额外的性能,牺牲速度。因此我们有特定的语法去解决这个问题。
%格式化
%s表示填充字符串;
%d表示填充整数;
%f表示填充小数;
完成整数的填充:
# 仅仅使用%s,既可以完成字符串的填充,又可以完成数字的填充
结果如下:
完成浮点数的填充:
a =
结果如下:
format()格式化
完成整数的填充:
# 不指定d符号,既可以完成字符串的填充,又可以完成数字的填充
结果如下:
完成浮点数的填充:
a =
结果如下:
f-string格式化
完成整数的填充:
3000
结果如下:
完成浮点数的填充:
3.14159268
结果如下:
- END -
本文已和作者授权,如需转载请与作者联系
大厂笔面试题+书籍赠送进行中:(点击领取)
python格式化字符串_Python的3种字符串格式化方法,哪种你最喜欢?相关推荐
- python去重语句_Python对列表去重的多种方法(四种方法)
无聊统计了下列表去重到底有多少种方法.下面小编给大家总结一下,具体内容详情如下: 开发中对数组.列表去重是非常常见的需求,对一个list中的id进行去重,有下面几种方法,前面两种方法不能保证顺序, 后 ...
- python规范化字符串_python中正确的字符串编码规范
在Python中字符串是不可改变的对象(immutable),因此无法直接修改字符串的某一位字符.一种可行的方式,是将字符串转换为列表,修改列表的元素后,在重新连接为字符串. 示例代码如下:s = ' ...
- java python 运行 内存_Python C Java中字符串在内存中的存储
Python 昨天在讲Python的过程中,发现了一个小问题,当时课上没有解决,下面特意查阅资料解决了一下. a = "123" b = "123" print ...
- python中用什么函数读取字符串_Python(2)字符串的主要方法
二.字符串方法 1. 获取字符串的长度,使用函数len() 1 a = "Hello, World!" 2 print(len(a)) 2. 删除字符串前后空格,使用函数strip ...
- python 分隔符截取字符串_python指定分隔符截取字符串
python截取指定分隔符后面的字符串 例如:notifydata[1] =G20-杭州峰会放假时间 notifydata[2] =G20-杭州峰print('-'.join('G20-杭州峰会-放假 ...
- python 多重列表去重_Python对列表去重的多种方法(四种方法)
Python对列表去重的多种方法(四种方法) 无聊统计了下列表去重到底有多少种方法.下面小编给大家总结一下,具体内容详情如下: 开发中对数组.列表去重是非常常见的需求,对一个list中的id进行去重, ...
- python公式计算_Python Numpy计算各类距离的方法
详细: 1.闵可夫斯基距离(Minkowski Distance) 2.欧氏距离(Euclidean Distance) 3.曼哈顿距离(Manhattan Distance) 4.切比雪夫距离(Ch ...
- python endswith函数_Python中endswith()函数的使用方法
Python中提供的内置函数中endswith()是用于判断一个字符串是否以特定的字符串后缀结尾,如果是则返回逻辑值True,否则返回逻辑值False. 该函数与startswith()函数相似,只不 ...
- python数组展示_python 显示数组全部元素的方法
python 显示数组全部元素的方法 如下所示: import numpy as np np.set_printoptions(threshold='nan') 以上这篇python 显示数组全部元素 ...
- python打印日历_python输出指定月份日历的方法
python输出指定月份日历的方法 本文实例讲述了python输出指定月份日历的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python import calendar ca ...
最新文章
- nodejs原生模块简介
- MySQL读取Binlog日志常见的3种错误
- 小甲鱼 OllyDbg 教程系列 (二) :从一个简单的实例来了解PE文件
- [飞秋]局域网聊天写的代码旁人从来看不
- 宅男程序员给老婆的计算机课程之4:SQL vs NoSQL
- Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
- java/android 做题中整理的碎片小贴士(15)
- python判断ip地址是否合法_Python课堂:判定IP地址合法性的三种方法
- Client-Side UI Automation Provider - WinForm Sample
- MNN(二):借助Opencv实现MNN推理
- C++实现简易五子棋游戏
- 一级域名二级域名区别
- 爱你,我永远的 Elaine
- Systemverilog always_comb 过程块
- 通信工程考研英语复试专有名词翻译
- Window之删除云盘在设备和驱动器上的图标
- 达梦出席湖北银行业金融机构信息科技风险管理研讨会
- 计算方法(五):数值微分与数值积分
- Java项目:CRM客户关系管理系统(Spring+SpringMVC+MyBatis + maven)
- 企业数超500万家,钉钉宣布进入软件硬件智能化融合的4.0时代