Option #2: str.format()

这种更新的工作方式是在Python 2.6中引入的。您可以查看Python文档以获取更多信息。

怎样使用Use str.format()

str.format()是对%-formatting的改进。它使用正常的函数调用语法,并且可以通过对要转换为字符串的对象的__format __()方法进行扩展。

使用str.format(),替换字段用大括号标记:

1

"Hello, {}. You are {}.".format(name, age)

'Hello, Eric. You are 74.'

您可以通过引用其索引来以任何顺序引用变量:

1

"Hello, {1}. You are {0}-{0}.".format(age, name)

'Hello, Eric. You are 74-74.'

但是,如果插入变量名称,则会获得额外的能够传递对象的权限,然后在大括号之间引用参数和方法:

1

2

person = {'name': 'Eric', 'age': 74}

"Hello, {name}. You are {age}.".format(name=person['name'], age=person['age'])

'Hello, Eric. You are 74.'

你也可以使用**来用字典来完成这个巧妙的技巧:

1

"Hello, {name}. You are {age}.".format(**person)

'Hello, Eric. You are 74.'

f-string相比,str.format()绝对是一个升级版本,但它并非总是好的。

为什么 str.format() 并不好

使用str.format()的代码比使用%-formatting的代码更易读,但当处理多个参数和更长的字符串时,str.format()仍然可能非常冗长。看看这个:

1

2

3

4

5

6

7

8

9

first_name = "Eric"

last_name = "Idle"

age = 74

profession = "comedian"

affiliation = "Monty Python"

print(("Hello, {first_name} {last_name}. You are {age}. " +

"You are a {profession}. You were a member of {affiliation}.") </div>
.format(first_name=first_name, last_name=last_name, age=age, </div>

profession=profession, affiliation=affiliation))

Hello, Eric Idle. You are 74. You are a comedian. You were a member of Monty Python.

如果你有想要传递给字典中的.format()的变量,那么你可以用.format(** some_dict)解压缩它,并通过字符串中的键引用这些值,但是必须有更好的的方法

f-Strings:一种改进Python格式字符串的新方法

好消息是,F字符串在这里可以节省很多的时间。他们确实使格式化更容易。他们自Python 3.6开始加入标准库。您可以在PEP 498中阅读所有内容。

也称为“格式化字符串文字”,F字符串是开头有一个f的字符串文字,以及包含表达式的大括号将被其值替换。表达式在运行时进行渲染,然后使用__format__协议进行格式化。与往常一样,Python文档是您想要了解更多信息的最佳读物。

以下是f-strings可以让你的生活更轻松的一些方法。

简单例子

语法与str.format()使用的语法类似,但较少细节啰嗦。看看这是多么容易可读:

1

2

3

name = "Eric"

age = 74

f"Hello, {name}. You are {age}."

'Hello, Eric. You are 74.'

使用大写字母F也是有效的:

1

F"Hello, {name}. You are {age}."

'Hello, Eric. You are 74.'

你喜欢F格式化字符串吗?我希望在本文的最后,你会回答>>> F"{Yes!}"

转载:

http://www.cnblogs.com/c-x-a/p/9333826.html

python3.6---之f'{}'相关推荐

  1. python 字符串前加r b u f 含义

    python 字符串前加r b u f 含义 文章目录: 一.字符串前加 `r` 二.字符串前加 `b` 三.字符串前加 `u` 四.字符串前加 `f` 五.Python3.x中字符串转换成字节类型 ...

  2. Python3.6字符串新特性

    字符串前加 f 1.作用: 字符串格式化(python 3.6 新增,类似于变量内插赋值),格式化的字符串文字前缀为"f",类似str.format().包含由花括号包围的替换区域 ...

  3. python3 笔记6 字符串

    定义:字符串是Python中最常用的数据类型,我们可以使用引号(' or ")来创建字符串. 如下方式分配一个值即创建字符串完毕: #!/usr/bin/python3 var1 = 'co ...

  4. Python3基本用法 2020.2.20

    Python3基本用法 2020.2.20 Python3简介 Python是一个高层次的结合了解释性.编译性.互动型和面向对象的脚本语言. Python的设计具有很强的可读 %8.5f格式说明符表示 ...

  5. Python3基础学习总结

    目录 一.Python3变量和输入输出函数 1.Python语言 2.变量 3.输入输出函数和条件判断 二.Python3列表和元组 1.List基础结构 2.List索引 3.list和tuple( ...

  6. Python3快速入门—10.知识扩展

    10.Python3扩展 10.1异常 10.1.1常见异常 程序在运行时产生的错误称为异常. 在官网https://docs.python.org/3/library/exceptions.html ...

  7. 一张图实现3D人脸建模!这是中科院博士生入选ECCV的新研究 | 开源

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 通过一段视频,来重建人脸3D模型,没什么 ...

  8. 漏洞扫描工具_Vulmap漏洞扫描工具

    本文来源于https://github.com/zhzyker/vulmap 已与作者联系 作者同意发送本文章 Vulmap目前支持以下漏洞 +-------------------+-------- ...

  9. Lubuntu下小巧好用的Python编辑工具Geany

    在Lubuntu系统上有很多的Python编辑器,如eclipse,PyCharm等,功能繁多,市场占有率高,但动辄几百M的体积有些巨大,博主今天推荐一款精简且易用的Python开发工具--Geany ...

  10. BurpSuite日志分析过滤工具,加快SqlMap进行批量扫描的速度

    BurpLogFilter 一个python3写的,用于过滤BurpSuite日志的小程序 A python3 program to filter BurpSuite log file. WHY? 为 ...

最新文章

  1. solidworks画白色金属光泽_美人的共通点就是卧蚕,卧蚕真的太重要了,没有也要画出来...
  2. ACMNO.39 分解质因数 求出区间[a,b]中所有整数的质因数分解。蓝桥杯训练!
  3. 你不懂的JS学习笔记(作用域和闭包)
  4. 什么是物理路径,相对路径,绝对路径以及根目录
  5. 你确定不反编译 likely 看看?
  6. 字符串处理 —— 单模式匹配 —— MP 算法与 KMP 算法
  7. 【Oracle】创建角色
  8. CString转换成const char*
  9. PHP微信多级三级分佣系统,微信三级分销系统微信三级分销系统
  10. Sql Server 数据库练习题(一)
  11. 海康云台摄像机 ISAPI 的签名机制与语音传输
  12. Python模拟微信发红包
  13. 黄金矿工小游戏制作步骤
  14. 网上商城建设:微信小程序直播申请开通流程及开通方法
  15. 【高级微观经济学】厂商理论:生产技术与生产函数
  16. Z律师:创业项目如何玩转股权众筹?
  17. 金融业大数据风控方式
  18. 云服务 saas_SaaS和云服务策划
  19. MacVim中文乱码解决
  20. 解决提示“npm audit fix“问题

热门文章

  1. UnityShader30:预编译指令multi_complie和shader_feature
  2. bzoj 1677: [Usaco2005 Jan]Sumsets 求和(DP)
  3. 利用膨胀和腐蚀获取图像边缘 matlab实现
  4. 安卓intent发起广播事件给系统或当前app,并从系统或当前app中接收广播
  5. html表格宽度拖拽,原生js实现 拖拽改变 table表格列宽
  6. (Greedy approach)Find longest word in dictionary that is a subsequence of a given string
  7. 阿里云centos远程连接mysql
  8. cocos2dx windows phone平台下CCLabelTTF自己主动换行的实现
  9. C# File流操作
  10. POJ 1325 Machine Schedule(zoj 1364) 最小覆盖数