0. 摘要

  Python支持多种格式化字符串的方法,包括%-fromatting、str.format()、f-strings三种,f-strings是Python3.6以后出现的一种新方法,相比其他方法,更简洁、易读、速度快。

1. %-formatting

%格式化字符串是Python中比较老的一种用法。

例1:只有一个变量格式化输出

>>> name = 'Jack'
>>> 'Hello, %s.' % name
'Hello, Jack.'

例2:有多个变量需要替换时,使用这些变量的元祖。

>>> name = 'Jack'
>>> age = 20
>>> "Hello, I'm %s, %d years old." % (name, age)
"Hello, I'm Jack, 20 years old."

2. str.format()

  在Python2.6中引入了更新的格式化方式str.format()

例1:需替换的字段用{}标记

>>> name = 'Jack'
>>> age = 20
>>> "Hello, I'm {}, {} years old.".format(name, age)
"Hello, I'm Jack, 20 years old."

例2:使用索引引用变量,这样变量和替换的标记就不必一一对应。

>>> name = 'Jack'
>>> age = 20
>>> language = 'Python'
>>> "Hello, I'm {0}, {1} years old. My name is {0}".format(name, age)
"Hello, I'm Jack, 20 years old. My name is Jack"

例3:使用名称引用变量替换

>>> name = 'Jack'
>>> age = 20
>>> "Hello, I'm {na}, {ag} years old. My name is {na}".format(na=name, ag=age)
"Hello, I'm Jack, 20 years old. My name is Jack"

3. f-strings

  Python3.6中使用了一种更加简洁明了的格式化方法,该方法允许在字符串中嵌入变量、表达式。该方法使用格式: f"string"

例1:

>>> name = 'Jack'
>>> age = 20
>>> f"Hello, I'm {name}, {age} years old."
"Hello, I'm Jack, 20 years old."

例2:使用任意表达式

>>> f"{20*5}"
''

例3:调用函数

>>> name = "Jack"
>>> f"Hello, I'm {name.lower()}"
"Hello, I'm jack"

例4:多行文本

>>> f"""
... I'm {name},
... I'm {age} years old.
... """
"\nI'm Jack,\nI'm 20 years old.\n"

参考文档:

[博客] python3 f-string格式化字符串的高级用法(中文)

[官方文档] PEP 498 -- Literal String Interpolation(英文)

[博客] Python String Formatting Best Practices(英文)

Python - 格式化字符串的用法的更多相关文章

  1. Python中用format函数格式化字符串的用法

    这篇文章主要介绍了Python中用format函数格式化字符串的用法,格式化字符串是Python学习当中的基础知识,本文主要针对Python2.7.x版本,需要的朋友可以参考下   自python2. ...

  2. Python格式化字符串知多少

    字符串格式化相当于字符串模板.也就是说,如果一个字符串有一部分是固定的,而另一部分是动态变化的,那么就可以将固定的部分做成模板,然后那些动态变化的部分使用字符串格式化操作符(%) 替换.如一句问候语: ...

  3. Python格式化字符串~转

    Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...

  4. Python格式化字符串和转义字符

    地址:http://blog.chinaunix.net/uid-20794157-id-3038417.html Python格式化字符串的替代符以及含义     符   号     说     明 ...

  5. 【python】format函数格式化字符串的用法

    来源:http://www.jb51.net/article/63672.htm 自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式 ...

  6. Python格式化字符串

    在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...

  7. Python格式化字符串--format

    format格式化字符串方法相较于老版%格式方法的优点: 1.不需要理会数据类型的问题,在%方法中'%s'只能替代字符串类型. 2.单个参数可以多次输出,参数顺序可以不相同. 3.填充方式十分灵活,对 ...

  8. 【转】Python格式化字符串str.format()

    原文地址:http://blog.xiayf.cn/2013/01/26/python-string-format/ 每次使用Python的格式字符串(string formatter),2.7及以上 ...

  9. 18.Python格式化字符串(格式化输出)

    Python 提供了“%”对各种类型的数据进行格式化输出,例如如下代码: price = 108 print ("the book's price is %s" % price) ...

随机推荐

  1. java泛型详解(加一点语法糖)

    首先请看如下代码: public class Test{ public static void main(String str[]) { Hashtable h =new Hashtable(); h ...

  2. 使用Hexo和Github Pages快速搭建个人博客

    在编程路上,每天都在网上查看别人的博客,大牛的文章写得通俗易懂,同时博客网站也非常华丽.作为出入编程的一枚小白也想拥有这样一个自己的网站.那就立马去买一个域名了,在网上找教程来搭建. 搭建的过程还算比 ...

  3. 网络编程: 基于UDP协议的socket

    udp是无链接的,启动服务之后可以直接接受消息,不需要提前建立链接 UDP协议的通信优势: 允许一个服务器同时和多个客户端通信, TCP不行 服务端 import socket sk = socket ...

  4. div模拟textarea文本域轻松实现高度自适应——张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1362 一.关于tex ...

  5. [转]Shared——探究react-native通信机制

    原文:https://www.cnblogs.com/android-blogs/p/5623481.html 探究react-native通信机制 通信方式 我们所说的[通信],指的是RN中Java ...

  6. cf444E. DZY Loves Planting(并查集)

    题意 题目链接 Sol 神仙题啊Orzzzzzz 考场上的时候直接把树扔了对着式子想,想1h都没得到啥有用的结论. 然后cf正解居然是网络流??出给NOIP模拟赛T1???¥%--&((--% ...

  7. drupal smtp could not connect to smtp

    情况说明: 使用了SMTP Authentication Support 模块. 配置都没问题,是从另一台服务器迁过来的网站和数据库. 原因是客户的smtp服务器限制了我们新服务器的IP. 验证方式t ...

  8. WDCP上传SSL证书

    1.在线申请SSL证书 2.网站管理>SSL证书上传 3.将key文件直接上传,cert文件内容复制到crt文件中,再上传 4.开启https 注意:同一个域名下解析的若干域名,只能走主域名的证 ...

  9. android 每个块半径不同的扇形图,自定义view

    1.首先看效果图 2.自定义PieChartView,继承自View,下边为PieChartView代码 package com.yingjinbao.im.peach.customview; imp ...

  10. 2017年秋季个人阅读计划 ---《掌握需求过程》第二版 pdf

    这学期我们学习是软件需求分析,为了扩展视野,我们老师要求精读一本书,我根据老师推荐的书籍中找到了一本,名字叫做<掌握需求过程>,我大概浏览了一下这本书,这本书论述了软件开发中的重要课题—如 ...