Python中的格式化字符串方法:

在学习了一段时间的Python之后,回过头来看书的时候,发现Python中最简单的关于格式化输出字符串的方法也有多种,而这并不是类似于茴香豆的“茴”字有四种写法这一类的操作,而是真正有其实际的意义与用途,寒舟在这里做一个简单的整理,希望可以帮助到同样学习Python的小伙伴,有什么不对的地方,希望大家多多指正。

(Python版本:Python 3.7.4)

1.类比于C语言:

第一种方式就是使用 % 号来进行格式化的输出,这也是学习过C语言的朋友在接触到

Python时觉得熟悉的一种方式,如下代码所示:

myName='Sasuke'

yourName='Naruto'

age=16

print("Hello,%s,I'm %s,%d years old"%(myName,yourName,age))

输出如下:

Hello,Sasuke,I’m Naruto,16 years old

这种方式的特点是简单容易理解,在需要格式化输出的print语句里面用格式说明符%d,%s,%f之类的进行替代想要输出的变量,然后在输出的语句""(或’’)外面跟上一个%号,后面加上格式化输出的变量名。值得注意的是,当有多个需要格式化输出的变量时,需要将变量名放在一对()里面,同时变量名中间用‘,’隔开,并且变量名需要与之前的格式说明符一一对应,因为Python虽然是一种

动态类型

的语言,但是仍然是

强类型语言

,如果输出的变量类型同前面格式说明符中的类型不同,Python将会报错,所以使用这种方式进行格式化输出时,要格外注格式说明符 % 后面所跟的字母,保证和变量的数据类型一致。

但是当需要对输出的数据进行格式设置时,这种方法就会显得十分方便,比如说,需要将一个浮点数保留小数点后面5位数据时,可以很方便的在声明的格式说明符中进行格式设置,代码如下所示:

PI=3.1415926535

print("圆周率是:%.5f"%PI)

总结:

这种方式使用时需要格外注意变量的格式,如果格式同对应的格式说明符中的变量类型不一致,程序则会报错,所以需要小伙伴们编程的时候,对使用的变量的数据类型做到完全的理解,同时不要记错搞混,但是输出时可以对输出格式进行设置,较为灵活。

2.类比于Java

(1)使用“+”进行拼接语句

使用Python时可以使用类似于Java语言中的“+”将输出语句与需要格式化输出的变量进行拼接,同样可以方便快捷的进行格式化输出,代码如下:

myName='Sasuke'

yourName='Naruto'

age=16

print("Hello,"+yourName+",I'm "+myName)

这段代码将会输出:

Hello,Naruto,I’m Sasuke

细心的小伙伴可能已经注意到了,我在这里并没有输出前一个例子中的年龄,只输出两个人的姓名,这是因为Python中使用“+”进行格式化输出的本质是将print()函数()中的输出内容使用“+”进行拼接成为了一个新的字符串,然后将这个没有命名的字符串进行输出。因此,既然“+”使用的是字符串的拼接操作,当然()中的数据类型只能是字符串,才能进行拼接,如果在上述代码中进行年龄的输出:

myName='Sasuke'

yourName='Naruto'

age=16

print("Hello,"+yourName+",I'm "+myName+","+age+" years old")

Python将会进行报错,提醒输出格式不匹配:

2.使用“,”进行拼接

同样,在Python中可以不使用“+”进行拼接,就可以避免格式只能是字符串的限制,使用“,”将需要输出的语句与变量名隔开即可,代码如下:

myName='Sasuke'

yourName='Naruto'

age=16

print("Hello,",yourName,",I'm ",myName,",",age," years old")

输出如下:

Hello, Naruto ,I’m Sasuke , 16 years old

可知输出同前面的结果完全一样,并且不会因为格式不一致而报错,同时代码清晰明了,不用前后对应的来看代码,就可以理解输出的变量同语句之间的关系。

总结:

使用这两种方法进行格式化输出时,优点是不需要将输出语句进行前后对应的看,清晰明了,写代码时同样不会搞混乱输出语句同变量之间的关系。值得注意的是,使用“+”进行拼接时,格式只能是字符串,所以需要我们对变量的数据格式做到基本的了解,而使用“,”进行拼接语句时,则完全没有格式的限制,不需要记忆各个变量的数据类型,大大的提高了编程效率。

3.使用format()函数

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字

符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。format() 函数可以

接受不限个参数,位置可以不按顺序。代码如下:

myName='Sasuke'

yourName='Naruto'

age=16

print("Hello,{0},I'm {1},{2} years old".format(yourName,myName,age))

print("Hello,{1},I'm {0},{2} years old".format(yourName,myName,age))

print("Hello,{},I'm {},{} years old".format(yourName,myName,age))

输出如下所示:

Hello,Naruto,I’m Sasuke,16 years old

Hello,Sasuke,I’m Naruto,16 years old

Hello,Naruto,I’m Sasuke,16 years old

可以发现,第一种输出格式同第三种格式的输出格式完全一致,可以得知format()函数的使用方式为,在输出语句里面将需要格式化输出的变量值用{}代替,然后将输出语句在“”外面调用format()函数,参数为需要格式化输出的变量名,中间用“,”进行隔开。可以发现,format()函数不需要我们了解格式化输出的变量属于哪种数据类型,直接输出即可。同时{}中间可以传入顺序,如果不传入,则默认按照0,1,2…进行排序,从第一句和第三句输出可以证明这一点,这时format()中的变量顺序需要同输出语句中的变量值顺序一一对应,保证不会乱序。同样,也可以在{}中传入自定义的变量顺序,是format()函数中的变量按照我们想要的顺序进行输出,值得注意的是,输出编号是从0开始的,即为偏移量。

同样,使用format()函数也可以对输出的格式进行设置,只需要在{}中传入相应的

参数即可,比如输出一个浮点数,只保存小数点后面的5位:

PI=3.1415926535

print("圆周率是:{:.5f}".format(PI))

输出为:

圆周率是:3.14159

具体的format()函数使用方式,可以参考菜鸟教程的内容:

[format()函数]

(https://www.runoob.com/python/att-string-format.html)

总结

使用format()函数,可以使我们不用考虑变量具体的数据类型,可以直接一一对应或者按照自定义的顺序输出,同样可以灵活地进行输出格式设置,缺点可能是格式化输出与变量名分开,不太易理解,以及代码量偏多

综上所述,上述格式化输出方法各有优劣,以及适用的场景,小伙伴们在使用过程中选择适合自己的方式使用,希望可以帮助到大家!

(转载请注明出处!)

python中格式化字符串的使用_Python中的格式化字符串相关推荐

  1. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  2. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

  3. python中格式化字符串的作用_python中字符串格式化的意义(化妆)

    格式 描述 %%百分号标记 #就是输出一个% %c字符及其ASCII码 %s字符串 %d有符号整数(十进制) %u无符号整数(十进制) %o无符号整数(八进制) %x无符号整数(十六进制) %X无符号 ...

  4. python把字符串放到列表_python中for循环把字符串或者字典添加到列表的方法

    python中如何for循环把字符串添加到列表? 实例: 1.单个字符串用for循环添加到列表中: # 把L1中的字符串添加到列表alist里面 L1 = 'MJlifeBlog' alist = [ ...

  5. python中对字符串进行编码_Python 中的字符串编码

    对Python字符编码一直没搞明白,今天看<Python参考手册>再次遇到这个问题,重新整理下 Python中字符串字面量用于指定一个字符序列,其定义方法是把文本放入单引号('),双引号( ...

  6. python怎么将字符串逆序_python中如何把一个字符串顺序逆序反转的几种方法?

    如 a='123456789' 反转成 a='987654321' 第一种方法:使用字符串切片 >>> a='123456789' >>> a = a[::-1] ...

  7. python中字符串异或_python 异或加密字符串的实例

    python 异或加密字符串的实例 做个简单习题:输入明文给定秘钥,密文还原,按位异或处理. import base64 as b64 def xor_encrypt(tips,key): ltips ...

  8. python中如何修改字符串的值_python中修改字符串的5种方法!

    # str只读,那么可使用以下的方法修改 # 修改字符串常见的有五种你只要掌握一种既可 # 1.第一种是'替换法' str4 = "嘿爱多" # 字符串的元素不能修改 # str4 ...

  9. python字符串函数运算_Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】 原创...

    前面简单介绍了python基本运算,这里再来简单讲述一下Python字符串相关操作 1. 字符串表示方法 >>> "www.jb51.net" #字符串使用单引号 ...

  10. python中%s是什么意思_python中的%s%是什么意思

    很多小白在学习python的时候,对"%s%"很是不理解,更不知道如何使用,今天我们就来讲解一下 python中的%s%是什么意思? 它是一个字符串格式化语法(它从C借用). 请参 ...

最新文章

  1. 在leangoo里怎么设置背景,修改密码?
  2. matlab与python交互_Python和MATLAB交互的基本操作
  3. 运维基础(1)Nginx
  4. Boost:bind绑定的unique_ptr测试程序
  5. 开源java性能分析工具_Java性能监控:您应该知道的5个开源工具
  6. 易鲸捷数据库(EsgynDB)常用SQL
  7. Linux学习笔记之 Btrfs文件系统简介及使用
  8. 游戏理论之Shapley Value(Shapley值)
  9. 打造有身体的 AI丨记青源Workshop具身智能与机器人研讨会(2022年第8期)
  10. HyperLynx(四)差分传输线模型
  11. 基于Zookeeper的ResourceManager-HA配置
  12. 英文题面翻译(30)
  13. delphi 剪切板变量_delphi剪切板-监视剪贴板
  14. Domoticz 中接入斐讯 M1 空气质量检测仪
  15. TextPad等编译器找不到或无法加载主类
  16. LM358集成运算放大器的简易测量
  17. 达芬奇调色技术:调色快速入门基础
  18. 用vue写一套销客多电商分销后台系统
  19. 落花有意随流水,流水无意落花逐
  20. c++栈和队列的应用(停车问题)

热门文章

  1. Jetson Nano 从入门到实战(转载)(案例:Opencv配置、人脸检测、二维码检测)
  2. 2022最新可用网页百度分享按钮安装教程【网站添加百度分享按钮代码】
  3. AndroidManifast警告On SDK version 23 and up, your app data will be automatically backed up...
  4. 好好学习:个人知识管理精进指南
  5. 网络准入系统usersafe守护企业内网安全
  6. 一英国公司打造极速家庭宽带:每秒1G
  7. 如何添加共享计算机用户,局域网共享,教您局域网共享怎么设置
  8. 今年双旦期间简直人品爆棚,晒晒我抽中的趣享付趣号卡
  9. 中级微观经济学:Chap 32 交换
  10. 来自MyBatis不一样收获结果的探索之旅