首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
x86系统cache locking的原理
cmpxchg 本身不是原子的,需要加 lock 才是原子的,而 lock 是通过锁内存总线来实现原子性的。
JavaEdge
2020/05/27
4.4K2
给大家介绍一下实现Go并发同步原语的基石
Go是一门以并发编程见长的语言,它提供了一系列的同步原语方便开发者使用,例如sync包下的Mutex、RWMutex、WaitGroup、Once、Cond,以及抽象层级更高的Channel。但是,它们的实现基石是原子操作。需要记住的是:软件原子操作离不开硬件指令的支持。本文拟通过探讨原子操作——比较并交换(compare and swap, CAS)的实现,来理解Go是如何借助硬件指令来实现这一过程的。
KevinYan
2021/09/24
1.1K0
给大家介绍一下实现Go并发同步原语的基石
About Cache Coherence, Atomic Operation, Memory Ordering, Memory Barrier, Volatile
该文章介绍了CPU缓存以及多线程程序中CPU缓存一致性的问题,并给出了具体的例子和解决方案。文章指出,多线程程序中的CPU缓存不一致问题可能会导致性能下降,因此需要谨慎处理。通过使用原子操作、锁操作等技术,可以避免CPU缓存不一致问题,从而提高程序的性能。
s1mba
2017/12/28
1.8K0
 About Cache Coherence,  Atomic Operation,  Memory Ordering,  Memory Barrier, Volatile
gcc x64 asm 内联汇编尝试
asm volatile(assembler template : output : input : clobber);
战神伽罗
2019/07/24
3K0
gcc x64 asm 内联汇编尝试
IDA Pro 7.5 + HexRays (x86/x64/ARM/ARM64)
The source code of the software we use on a daily basis isn’t always available. A disassembler like IDA Pro is capable of creating maps of their execution to show the binary instructions that are actually executed by the processor in a symbolic representation called assembly language. This disassembly process allows software specialists to analyse programs that are suspected to be nefarious in nature, such as spyware or malware. However, assembly language is hard to read and make sense of. That is why advanced techniques have been implemented into IDA Pro to make that complex code more readable. In some cases, it is possible to revert the binary program back, to a quite close level, to the original source code that produced it. The map of the program’s code can then be post-processed for further investigation.
obaby
2023/02/23
6.5K0
IDA Pro 7.5 + HexRays (x86/x64/ARM/ARM64)
VMProtect 3.x- 如何对vmp静态分析(2)
虚拟分支中最明显的一致性是PUSHVSP的使用。当两个加密值位于VSP + 0、 和的堆栈上时,将执行此虚拟指令VSP + 8。这些加密值使用给定块的最后一个LCONSTDW值解密。因此,可以基于这两个一致性创建一个非常小的算法。算法的第一部分将简单地使用std::find_if反向迭代器来定位给定代码块中的最后一个LCONSTDW。该 DWORD 值将被解释为用于解密两个分支的加密相对虚拟地址的 XOR 密钥。std::find_if现在执行第二个步骤来定位PUSHVSPvirtual 指令,当执行时,两个加密的相对虚拟地址将位于堆栈上。该算法将每条PUSHVSP指令的顶部两个堆栈值解释为加密的相对虚拟地址,并对最后一个LCONSTDW值应用 XOR 运算。
franket
2021/10/12
3.7K0
x86 CPU与IA-32架构
现代计算机使用的CPU大部分都是x86CPU,包括现在牙膏厂的酷睿。x86系列CPU的原型是Intel 1978年推出的8086 CPU
Orlion
2024/09/02
2350
x86 CPU与IA-32架构
Volatile 可见性承诺
Java Volatile 关键字是一种轻量级的数据一致性保障机制,之所以说是轻量级的是因为 volatile 不具备原子性,它对数据一致性的保障体现在对修改过的数据进行读取的场景下(也就是数据的可见性)。比起对读操作使用互斥锁, volatile 是一种很高效的方式。因为 volatile 不会涉及到线程的上下文切换,以及操作系统对线程执行的调度运算。同时 volidate 关键字的另一个功能是解决“指令重排序问题”。
不会飞的小鸟
2020/03/17
7320
x86汇编指令详解_x86汇编指令详解
参考链接:X86-assembly/Instructions/lea – aldeid
全栈程序员站长
2022/09/30
1.5K0
CAS指令与MESI缓存一致性协议、 “轻量级锁” 与原子操作CAS指令与MESI缓存一致性协议、 “轻量级锁” 与原子操作
CAS指令,在Intel CPU上称为CMPXCHG。最常见的原子操作有Compare and Exchange,Self Increase/Decrease等等
一个会写诗的程序员
2018/08/17
2.8K0
IA32和X86有什么区别?
 特别鸣谢:木芯工作室 孔子学鼓琴师襄子,十日不进。师襄子曰:“可以益矣。”孔子曰:“丘已习其曲矣,未得其数也。”有间,曰:“已习其数,可以益矣。”孔子曰:“丘未得其志也。”有间,曰:“已习其志,可以益矣。”孔子曰:“丘未得其为人也。”有间,有所穆然深思焉,有所怡然高望而远志焉。曰:“丘得其为人,黯然而黑,几然而长,眼如望羊,如王四国,非文王其谁能为此也!”师襄子辟席再拜,曰:“师盖云文王操也。”
20岁爱吃必胜客
2022/11/13
2.2K0
CAS操作在ARM和x86下的不同实现
  cmpxchg是X86比较交换指令,这个指令在各大底层系统实现的原子操作和各种同步原语中都有广泛的使用,比如linux内核,JVM,GCC编译器等,cmpxchg就是比较交换指令,了解cmpxchg之前先了解原子操作。
用户4415180
2022/06/23
1.3K0
Java CAS 原理分析
CAS 全称是 compare and swap,是一种用于在多线程环境下实现同步功能的机制。CAS 操作包含三个操作数 -- 内存位置、预期数值和新值。CAS 的实现逻辑是将内存位置处的数值与预期数值想比较,若相等,则将内存位置处的值替换为新值。若不相等,则不做任何操作。
田小波
2018/05/15
2.1K9
Java CAS 原理分析
volatile与内存屏障 发布于 2
在Java中,volatile用于标记变量,而内存屏障又是volatile的底层实现。它们是Java中最基础也是最简单的两个概念,它们的出现使得开发者在多线程环境下能够保证更好的数据一致性和程序执行的正确性。volatile简单、轻量,相比于其他方式,如synchronized或直接加锁,有着更好的性能。能让开发者少些对锁的忧虑,多一些对实际问题的关注。
DioxideCN
2023/10/21
4470
eBPF 简史「建议收藏」
最近总能看到bpf,但苦于找不到合适的资料理解,终于找到一个分析讲解较全面的文章,分享给大家,原网址如下: http://www.linux-ren.org/tech/2230.mhtml https://www.ibm.com/developerworks/cn/linux/l-lo-eBPF-history/index.html
全栈程序员站长
2022/09/29
4940
IDA PRO 5.6 Demo
‘instant debugger’: the debugger can be launched and a process started without a database. This feature is available locally and remotely and allows the debugger to be attached to any running process in the system. IDA can be used as the default system debugger. Remote 64-bit debugger for MS Windows 64 running on AMD64/EMT64. IDA itself runs in 32-bit mode while the debugger server runs in 64-bit mode to launch and debug 64-bit applications. full type system support for the ARM processor. IDA supports the function calling conventions and comments function parameters in the same way as it does on PC. The ARM module has been significantly improved: see a list of all the ARM specific enhancements below. Wizard-like interface to load new files. IDA assists the user in the initial load process by asking relevant questions about the file. This interface is configurable with XML files. Processor Modules
obaby
2023/02/28
9950
Java 虚拟机圖文詳解: JVM 體系結構 ( The JVM Architecture Explained
A Virtual Machine is a software implementation of a physical machine. Java was developed with the concept of WORA (Write Once Run Anywhere), which runs on a VM. The compiler compiles the Java file into a Java .class file, then that .class file is input into the JVM, which loads and executes the class file. Below is a diagram of the Architecture of the JVM.
一个会写诗的程序员
2021/12/16
9080
Java 虚拟机圖文詳解: JVM 體系結構  ( The JVM Architecture Explained
X86 寻址方式、AT&T 汇编语言相关知识、AT&T 与 Intel 汇编语言的比较、gcc 嵌入式汇编
注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念
s1mba
2017/12/28
3.4K0
X86 寻址方式、AT&T 汇编语言相关知识、AT&T 与 Intel 汇编语言的比较、gcc 嵌入式汇编
计算机常用算法对照表整理
常用对照: NLP CRF算法: 中文名称条件随机场算法,外文名称conditional random field algorithm,是一种数学算法,是2001年提出的,基于遵循马尔可夫性的概率图模型。 全部对照 第一部分、计算机算法常用术语中英对照 Data Structures 基本数据结构 Dictionaries 字典 Priority Queues 堆 Graph Data Structures 图 Set Data Structures 集合 Kd-Tre
学到老
2018/03/16
2.1K0
推荐阅读
相关推荐
x86系统cache locking的原理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档