Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python3.6的新特性f-string和新字典

Python3.6的新特性f-string和新字典

作者头像
andrew_a
发布于 2019-07-30 06:30:31
发布于 2019-07-30 06:30:31
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

应该大多数的写Python的都知道这个特性,所以这篇文章是给不知道的同学写的,知道的就跳过吧。

用Python3.6版本这么久了,竟然才知道有这么一个特别方便的特性

f-string, 上面是官方文档,我用翻译翻了一下

------

格式化的字符串文字以前缀'f'为的格式字符串为前缀,并且与之接受的格式字符串类似str.format()。它们包含由花括号包围的替换字段。替换字段是表达式,在运行时进行评估,然后使用format()协议进行格式化 :

--------

从字符串中提取的表达式在f字符串出现的上下文中计算。这意味着表达式可以完全访问本地和全局变量。可以使用任何有效的Python表达式,包括函数和方法调用。

更详细的文档可以看这里

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://docs.python.org/3.6/reference/lexical_analysis.html#f-strings

之前最常用的就是formatat或者%,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sql = ("insert into student ("
       "id, name, gender, tall, weight)"
       "values("
       " '%s', '%s', '%s', '%s', '%s');" %(id,name,gender,tall,weight)
       )

只有5个字段的表,都要写这么冗余的%s,所以一旦字段很多,那么发生字符串拼接的错误概率就会变大。这样看来并不友好。。。

然后我们来试试新特性,使用方法就是f'{}'

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
res = requests.get(f'https://www.kugou.com/yy/html/search.html#searchType=song&searchKeyWord={keyword}')

你可以访问本地和全局变量,表达式,函数都可以,这样是不是爽多了

还有其他更多的用法:

看这篇文章:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://mlln.cn/2018/05/19/python3%20f-string%E6%A0%BC%E5%BC%8F%E5%8C%96%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E9%AB%98%E7%BA%A7%E7%94%A8%E6%B3%95/

这个就讲的很详细了,我就不写了。

在Python3.8中

翻译:

添加=说明符到f-strings。f'{expr=}'扩展到表达式的文本,等号,然后是已计算表达式的repr

所以在Python3.8中添加了=,之后就可以使用f-strings,做简单的调试,加上=之后会自动打印结果。

还有一个我觉得其实写代码都没有注意过的新特性就是,现在字典是有序的,而以前的字典是无序的

翻译:

该字典类型现在使用基于“紧凑”表示由雷蒙德的Hettinger提议 这是第一次由PyPy实现。dict()与Python 3.5相比,新内存的使用量减少了20%到25%。

这个新实现的顺序保留方面被认为是一个实现细节,不应该依赖(这可能会在未来发生变化,但是在更改语言规范之前,希望在几种版本的语言中使用这个新的dict实现为所有当前和未来的Python实现强制命令保留语义;这也有助于保持与随机迭代顺序仍然有效的语言的旧版本的向后兼容性,例如Python 3.5)。

具体为什么是有序,为什么速度快了,看这篇文章:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://www.cnblogs.com/Fushengliangnian/p/11202915.html

参考链接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1、https://docs.python.org/3.8/whatsnew/3.6.html
2、https://blog.csdn.net/s740556472/article/details/81111493
3、https://www.cnblogs.com/Fushengliangnian/p/11202915.htm
精彩推荐

机器学习&深度学习&人工智能资料

python基础资料

数据分析资料

数据分析 —numpy基础(三)

数据分析 — numpy基础(二)

数据分析 — numpy基础(一)

所有爬虫文章的归类

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫scrapy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
不断积累,步步高升:记录我的Python学习历程-python中f-string介绍
最近在看python基础的时候,又发现一个之前没怎么掌握的字符串格式化的小技巧,f-string
小博测试成长之路
2023/09/01
2310
不断积累,步步高升:记录我的Python学习历程-python中f-string介绍
通过f-string编写简洁高效的Python格式化输出代码
Python 3.6中引入的f-string是Python中最常用的特征之一,它可以让我们编写更干净、更高效和更易于维护的代码,我们今天就由浅入深来详细介绍使用它的一些技巧。
deephub
2024/06/03
2470
通过f-string编写简洁高效的Python格式化输出代码
python3.6 的三种字符串处理,formatting、str.format()、f-string
在Python 3.6之前,有两种将Python表达式嵌入到字符串文本中进行格式化的主要方法:%-formatting和str.format()。
鳄鱼儿
2024/05/21
6010
爬虫入门到精通-网页的解析(正则)
本文章属于爬虫入门到精通系统教程第五讲 在爬虫入门到精通第四讲中,我们了解了如何下载网页(http://mp.weixin.qq.com/s?__biz=MzU2OTAxNTcwMw==&mid=1
爬虫
2018/04/08
7800
爬虫入门到精通-网页的解析(正则)
软件测试|f-string格式化输出的这些用法,90%的Pythoner不知道
f-string 是 Python3.6 版本开始引入的特性,想必很多 Python 用户都基础性的使用过,通过它我们可以更加方便地向字符串中嵌入自定义内容,但 f-string 真正蕴含的功能远比大多数用户知道的要丰富,今天我们就来一起探索它们!
霍格沃兹测试开发Muller老师
2023/02/07
4680
Python 格式化字符串,这个方法真的即丝滑又舒服!
按理说我应该对这种重复性的动作很烦,起初确实是这样,但是现在我乐在其中,为什么呢?肯定不是脑子坏了,因为我最近学会了一个超好用的格式化字符串的方法,那是相当的丝滑,所以我又迫不及待的来分享啦!
AI算法与图像处理
2019/11/09
4790
Python 格式化字符串,这个方法真的即丝滑又舒服!
按理说我应该对这种重复性的动作很烦,起初确实是这样,但是现在我乐在其中,为什么呢?肯定不是脑子坏了,因为我最近学会了一个超好用的格式化字符串的方法,那是相当的丝滑,所以我又迫不及待的来分享啦!
编程文青李狗蛋
2019/11/07
3610
Python 格式化字符串,这个方法真的即丝滑又舒服!
Python 3.8 即将到来,这是你需要关注的几大新特性
2018 年 6 月底,Python 3.7 问世,之后 Python 3.8 的开发和测试工作也已经展开。近日,Python 软件基金会公开了 3.80b2 的说明文档,向公众展示了 beta 版本的测试进展,以及 Python 3.8 版本的新特性和功能改进。
昱良
2019/07/19
4090
Python 格式化字符串,这个方法真的即丝滑又舒服!
按理说我应该对这种重复性的动作很烦,起初确实是这样,但是现在我乐在其中,为什么呢?肯定不是脑子坏了,因为我最近学会了一个超好用的格式化字符串的方法,那是相当的丝滑,所以我又迫不及待的来分享啦!
数据森麟
2020/02/20
3330
Python 格式化字符串,这个方法真的即丝滑又舒服!
99%的Python用户都不知道的f-string隐秘技巧
f-string想必很多Python用户都基础性的使用过,作为Python3.6版本开始引入的特性,通过它我们可以更加方便地向字符串中嵌入自定义内容,但f-string真正蕴含的功能远比大多数用户知道的要丰富,今天我们就来一起get它们~
Feffery
2021/04/13
3350
Python | 正确使用 Python f-string 格式化字符串的 7 个层级
原文:7 Levels of Using F-Strings in Python | by Yang Zhou
咸鱼学Python
2021/09/08
2.7K0
Python | 正确使用 Python f-string 格式化字符串的 7 个层级
Python精讲 | 超好用的f-string和Python3.12的新增特性
上个月,Python发布了3.12版本,新增了一些特性,并且提升了效率。这个在之前文章中有提过:Python3.12发布,性能提升5%
Crossin先生
2023/11/22
5310
Python精讲 | 超好用的f-string和Python3.12的新增特性
Python格式化字符串f-string概览
f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,该方法源于PEP 498 – Literal String Interpolation,主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f'xxx' 或 F'xxx'),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:
全栈程序员站长
2022/06/28
9270
Python 3.8 即将到来,这是你需要关注的几大新特性
从事计算机领域工作的读者朋友对 Python 编程语言应该非常熟悉了。这是一门广受好评的动态编程语言,其灵活和语法简易的特点使得这门语言在脚本工具、数据分析、Web 后端都有广泛的应用。Python 开发社区也非常活跃,3.x 的版本迭代速度非常快。2018 年 6 月底,Python 3.7 问世,之后 Python 3.8 的开发和测试工作也已经展开。近日,Python 软件基金会公开了 3.80b2 的说明文档,向公众展示了 beta 版本的测试进展,以及 Python 3.8 版本的新特性和功能改进。
Python数据科学
2019/07/19
3910
Python 3.8 即将到来,这是你需要关注的几大新特性
Python3.8 特性介绍
Python3.8 已经发布了, 官方文档看这里 What’s New In Python 3.8.
py3study
2020/01/02
5640
Python3.8 新特性-很有用的呀
1、海象表达式****1 2、强制位置参数****2 3、增强型f-string****2 4、continue关键字的使用****3 5、as_integer_ratio()方法****3 6、其他新增语法特性****3 (1)添加 \N{name} 转义符在正则表达式 中的支持: 3 (2) 字典反向迭代 4 (3) 函数关键字参数限制 4 (4) yield和return语法增强 4 (5) 组合数据类型语法警告提示 4 (6) 日期时间对象改进 5 (7) Ctrl-C终止程序的改进 5 (8) 数据拷贝增强型语法 5 (9) pow()函数的改进 5 (10) mod()取模的改进 6 (11) 字典推导式的改进 6 (12) 字典数据执行顺序 6
大牧莫邪
2020/12/31
7580
Python 3.8.0 正式版发布,新特性初体验
新增一种新语法形式::=,又称为“海象运算符”(为什么叫海象,看看这两个符号像不像颜表情),如果你用过 Go 语言,应该对这个语法非常熟悉。
张凯强
2019/11/19
4830
Python 3.8.0 正式版发布,新特性初体验
Python3.6、3.7、3.8、3.9新特性
本文列举了Python3.6、3.7、3.8、3.9四个版本的新特性,学习它们有助于提高对Python的了解,跟上最新的潮流。
好派笔记
2021/08/21
5.1K0
Python3.6、3.7、3.8、3.9新特性
【Python3】f-string——s
f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f’xxx’或F’xxx’),以大括号{}标明被替换的字段。f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式。         f-string在功能方面不逊于传统的%-formatting语句和str.format()函数,同时性能又优于二者,且使用起来也更加简洁明了,因此对于Python3.6及以后的版本,推荐使用f-string进行字符串格式化。
py3study
2020/01/13
1.2K0
Python3.12有哪些新变化?
Python3.12的发布也意味着距离Python3.14只差两个版本,那时应该称Python为π-thon?(谐音哏扣钱 O(∩_∩)O哈哈~
测试蔡坨坨
2023/11/06
8560
Python3.12有哪些新变化?
推荐阅读
相关推荐
不断积累,步步高升:记录我的Python学习历程-python中f-string介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验