python3.6---之f'{}'
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> 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'{}'相关推荐
- python 字符串前加r b u f 含义
python 字符串前加r b u f 含义 文章目录: 一.字符串前加 `r` 二.字符串前加 `b` 三.字符串前加 `u` 四.字符串前加 `f` 五.Python3.x中字符串转换成字节类型 ...
- Python3.6字符串新特性
字符串前加 f 1.作用: 字符串格式化(python 3.6 新增,类似于变量内插赋值),格式化的字符串文字前缀为"f",类似str.format().包含由花括号包围的替换区域 ...
- python3 笔记6 字符串
定义:字符串是Python中最常用的数据类型,我们可以使用引号(' or ")来创建字符串. 如下方式分配一个值即创建字符串完毕: #!/usr/bin/python3 var1 = 'co ...
- Python3基本用法 2020.2.20
Python3基本用法 2020.2.20 Python3简介 Python是一个高层次的结合了解释性.编译性.互动型和面向对象的脚本语言. Python的设计具有很强的可读 %8.5f格式说明符表示 ...
- Python3基础学习总结
目录 一.Python3变量和输入输出函数 1.Python语言 2.变量 3.输入输出函数和条件判断 二.Python3列表和元组 1.List基础结构 2.List索引 3.list和tuple( ...
- Python3快速入门—10.知识扩展
10.Python3扩展 10.1异常 10.1.1常见异常 程序在运行时产生的错误称为异常. 在官网https://docs.python.org/3/library/exceptions.html ...
- 一张图实现3D人脸建模!这是中科院博士生入选ECCV的新研究 | 开源
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 通过一段视频,来重建人脸3D模型,没什么 ...
- 漏洞扫描工具_Vulmap漏洞扫描工具
本文来源于https://github.com/zhzyker/vulmap 已与作者联系 作者同意发送本文章 Vulmap目前支持以下漏洞 +-------------------+-------- ...
- Lubuntu下小巧好用的Python编辑工具Geany
在Lubuntu系统上有很多的Python编辑器,如eclipse,PyCharm等,功能繁多,市场占有率高,但动辄几百M的体积有些巨大,博主今天推荐一款精简且易用的Python开发工具--Geany ...
- BurpSuite日志分析过滤工具,加快SqlMap进行批量扫描的速度
BurpLogFilter 一个python3写的,用于过滤BurpSuite日志的小程序 A python3 program to filter BurpSuite log file. WHY? 为 ...
最新文章
- solidworks画白色金属光泽_美人的共通点就是卧蚕,卧蚕真的太重要了,没有也要画出来...
- ACMNO.39 分解质因数 求出区间[a,b]中所有整数的质因数分解。蓝桥杯训练!
- 你不懂的JS学习笔记(作用域和闭包)
- 什么是物理路径,相对路径,绝对路径以及根目录
- 你确定不反编译 likely 看看?
- 字符串处理 —— 单模式匹配 —— MP 算法与 KMP 算法
- 【Oracle】创建角色
- CString转换成const char*
- PHP微信多级三级分佣系统,微信三级分销系统微信三级分销系统
- Sql Server 数据库练习题(一)
- 海康云台摄像机 ISAPI 的签名机制与语音传输
- Python模拟微信发红包
- 黄金矿工小游戏制作步骤
- 网上商城建设:微信小程序直播申请开通流程及开通方法
- 【高级微观经济学】厂商理论:生产技术与生产函数
- Z律师:创业项目如何玩转股权众筹?
- 金融业大数据风控方式
- 云服务 saas_SaaS和云服务策划
- MacVim中文乱码解决
- 解决提示“npm audit fix“问题
热门文章
- UnityShader30:预编译指令multi_complie和shader_feature
- bzoj 1677: [Usaco2005 Jan]Sumsets 求和(DP)
- 利用膨胀和腐蚀获取图像边缘 matlab实现
- 安卓intent发起广播事件给系统或当前app,并从系统或当前app中接收广播
- html表格宽度拖拽,原生js实现 拖拽改变 table表格列宽
- (Greedy approach)Find longest word in dictionary that is a subsequence of a given string
- 阿里云centos远程连接mysql
- cocos2dx windows phone平台下CCLabelTTF自己主动换行的实现
- C# File流操作
- POJ 1325 Machine Schedule(zoj 1364) 最小覆盖数