文末扫二维码领【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种字符串格式化方法,哪种你最喜欢?相关推荐

  1. python去重语句_Python对列表去重的多种方法(四种方法)

    无聊统计了下列表去重到底有多少种方法.下面小编给大家总结一下,具体内容详情如下: 开发中对数组.列表去重是非常常见的需求,对一个list中的id进行去重,有下面几种方法,前面两种方法不能保证顺序, 后 ...

  2. python规范化字符串_python中正确的字符串编码规范

    在Python中字符串是不可改变的对象(immutable),因此无法直接修改字符串的某一位字符.一种可行的方式,是将字符串转换为列表,修改列表的元素后,在重新连接为字符串. 示例代码如下:s = ' ...

  3. java python 运行 内存_Python C Java中字符串在内存中的存储

    Python 昨天在讲Python的过程中,发现了一个小问题,当时课上没有解决,下面特意查阅资料解决了一下. a = "123" b = "123" print ...

  4. python中用什么函数读取字符串_Python(2)字符串的主要方法

    二.字符串方法 1. 获取字符串的长度,使用函数len() 1 a = "Hello, World!" 2 print(len(a)) 2. 删除字符串前后空格,使用函数strip ...

  5. python 分隔符截取字符串_python指定分隔符截取字符串

    python截取指定分隔符后面的字符串 例如:notifydata[1] =G20-杭州峰会放假时间 notifydata[2] =G20-杭州峰print('-'.join('G20-杭州峰会-放假 ...

  6. python 多重列表去重_Python对列表去重的多种方法(四种方法)

    Python对列表去重的多种方法(四种方法) 无聊统计了下列表去重到底有多少种方法.下面小编给大家总结一下,具体内容详情如下: 开发中对数组.列表去重是非常常见的需求,对一个list中的id进行去重, ...

  7. python公式计算_Python Numpy计算各类距离的方法

    详细: 1.闵可夫斯基距离(Minkowski Distance) 2.欧氏距离(Euclidean Distance) 3.曼哈顿距离(Manhattan Distance) 4.切比雪夫距离(Ch ...

  8. python endswith函数_Python中endswith()函数的使用方法

    Python中提供的内置函数中endswith()是用于判断一个字符串是否以特定的字符串后缀结尾,如果是则返回逻辑值True,否则返回逻辑值False. 该函数与startswith()函数相似,只不 ...

  9. python数组展示_python 显示数组全部元素的方法

    python 显示数组全部元素的方法 如下所示: import numpy as np np.set_printoptions(threshold='nan') 以上这篇python 显示数组全部元素 ...

  10. python打印日历_python输出指定月份日历的方法

    python输出指定月份日历的方法 本文实例讲述了python输出指定月份日历的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python import calendar ca ...

最新文章

  1. nodejs原生模块简介
  2. MySQL读取Binlog日志常见的3种错误
  3. 小甲鱼 OllyDbg 教程系列 (二) :从一个简单的实例来了解PE文件
  4. [飞秋]局域网聊天写的代码旁人从来看不
  5. 宅男程序员给老婆的计算机课程之4:SQL vs NoSQL
  6. Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
  7. java/android 做题中整理的碎片小贴士(15)
  8. python判断ip地址是否合法_Python课堂:判定IP地址合法性的三种方法
  9. Client-Side UI Automation Provider - WinForm Sample
  10. MNN(二):借助Opencv实现MNN推理
  11. C++实现简易五子棋游戏
  12. 一级域名二级域名区别
  13. 爱你,我永远的 Elaine
  14. Systemverilog always_comb 过程块
  15. 通信工程考研英语复试专有名词翻译
  16. Window之删除云盘在设备和驱动器上的图标
  17. 达梦出席湖北银行业金融机构信息科技风险管理研讨会
  18. 计算方法(五):数值微分与数值积分
  19. Java项目:CRM客户关系管理系统(Spring+SpringMVC+MyBatis + maven)
  20. 企业数超500万家,钉钉宣布进入软件硬件智能化融合的4.0时代

热门文章

  1. 电路交换和报文交换和分组交换的概念和区别
  2. 别再折腾开发环境了,一劳永逸的搭建方法
  3. 一个小改动,CNN输入固定尺寸图像改为任意尺寸图像
  4. 溢出漏洞利用小结(基础)
  5. oracle12之 多租户容器数据库架构
  6. vue.js学习笔记 - 组件(二)
  7. pxeconfig 4.2.0 发布,PXE 首要启动设备
  8. Activity的三层设计
  9. [转]学习如何使用 Cookie 编程
  10. Mac下使用crontab来实现定时任务