字符串格式化

Python中字符串格式化的方法不止一种,每种方式都有它的优缺点,具体使用哪一种,需要取决于具体情况。

一、旧式字符串格式化

Python内置了一个独特的字符串操作:通过“%操作符”可以方便快捷地进行位置格式化。

如果要在单个字符串中进行多次替换,需要对旧式字符串格式化语法加以改动,由于%操作符只能接收一个参数,因此需要将字符串包装到右边的元组中。

二、新式字符串格式化

新式字符串格式化可以免去%操作符这种特殊的语法,并使得字符串格式化的语法更加规整,新式字符串在字符串对象上调用了format()函数

上例中将int变量格式化为十六进制数字符串的语法也改变了,需要在变量名后面添加“:x”后缀来传递格式规范。

三、字符串字面值插值(Python3.6+

格式化字符串字面值(formatted string literal),可以在字符串常量内使用嵌入的Python表达式。这种新的格式语法非常强大,由于其中可以嵌入任意的Python表达式,所以甚至能内联算术运算。

本质上格式化字符串字面值是Python解析器的功能,将f字符串转换为一系列字符串常量和表达式,然后合并起来构建最终字符串。

四、模板字符串

模板字符串(template string),需要从Python的内置字符串模块中导入Template类,模板字符串不是核心语言功能,而是由标准库中的模块提供。

模板字符串最佳使用场景是用来处理程序用户生成的格式字符串,因为模板字符串较为简单,所以比较安全。

【总结】

如果格式字符串使用户提供的,使用模板字符串来避免安全问题,如果不是,在考虑Python的版本,Python3.6+就使用字符串字面值插值,其他版本就使用新式字符串格式化。

【学习笔记】32、字符串格式化相关推荐

  1. Python学习笔记 - 探索字符串格式化

    大家好,我是Mr数据杨,今天我们会一起驾驭.format()方法和f-strings这两大神兵利器,让它们在代码中如刘备的双股剑,一分为二,斩断复杂性,让代码如诗如画. 想象一下,诸葛亮要挑选粮草总监 ...

  2. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  3. 影像组学视频学习笔记(32)-使用SimpleITK进行N4偏置场校正、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/ae0f502dc146 来源:简书,已获授权转载 RadiomicsWorld.com "影像组学世界" ...

  4. Python学习笔记:字符串和编码

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. Qt学习笔记之 字符串类型小结

    1. Qt常用字符串类型 1.1 QString QString是Unicode编码的字符串,存储一系列16位的QChar,每一个QChar对应一个Unicode 4.0编码的字符,详见<Qt学 ...

  6. Python学习笔记--Python字符串连接方法总结

    声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...

  7. python笔记5 - 字符串格式化表达式,while语句嵌套,for循环,break,continue,死循环

    2017/9/29 字符串格式化表达式,while语句嵌套,for循环,break,continue,死循环 ============================================= ...

  8. Python基础学习笔记-05字符串、列表、推导式;老师工位随机分配random.shuffle()、算术运算打分例题;

    字符串.列表.推导式 python数据类型: #可变数据: 列表List.字典Dictionary.集合Set . #不可变数据:数值Number(int.float.bool.complex).字符 ...

  9. 【剑指Offer】个人学习笔记_38_字符串的排列

    目录 题目: [剑指 Offer 38. 字符串的排列](https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof/) 题目分析 初始解 ...

  10. 【廖雪峰Python学习笔记】字符串与编码

    字符串与编码 三种字符编码 ASCII编码 :计算机由美国人发明,最早只有127个字符编码-- 大小写英文字母.数字和符号 Unicode:把中文.日文.韩文等所有语言统一到一套编码中,2-4byte ...

最新文章

  1. iOS:ShareSDk的分享
  2. 115. Leetcode 718. 最长重复子数组 (动态规划-子序列问题)
  3. 使用post访问不到接口_Postman工具使用说明
  4. 查看linux服务器信息
  5. 搭建一个小型教学办公网络
  6. win7 正在锁定计算机 卡住,win7系统安装卡在正在启动windows界面的解决方法
  7. Android 版本检测更新
  8. nginx集群部署,实现负载均衡和nfs共享
  9. 概率论的学习整理4:全概率公式
  10. 【交易架构day4】京东到家交易系统的演进之路
  11. html 注销 按钮,用户登录/注销时隐藏/替换菜单项
  12. Python函数的应用--汇率转换函数示例(第九章)
  13. VMware安装优麒麟20.04LTS
  14. 计算机主板 辐射,一直被忽视!电脑电磁辐射危害及机箱选择
  15. PostgreSQL死锁了怎么办?
  16. 有几种检测方法可以检测沼气成分?
  17. Windows 11首次重大更新!如何快速升级Win11 22H2?(附四种升级方法)
  18. JavaScript 数据类型的转换
  19. java发送gmail邮件_如何从R和Gmail发送电子邮件
  20. 服务器的地址信息,服务器主机地址信息

热门文章

  1. C#反编译工具Reflector使用方法
  2. JQuery的摸索之路(二比较)
  3. cacls 使用方法
  4. 返回、取消与关闭的使用逻辑
  5. 产品经理心中都住着一个段子手?看看他们如何相爱相撕的...
  6. 【人物】乔布斯:A级人才的自尊心不需要你呵护
  7. 剑指offer:栈的压入、弹出序列
  8. jQuey基础思维导图梳理1
  9. NEO从源码分析看网络通信
  10. PostgreSQL、Greenplum 日常监控 和 维护任务