繁体   English   中英

python在什么参数上区分格式化字符串和普通字符串?

[英]On what parameter does python differentiate between a formatted string and a normal string?

x = f"There are {n} types of people"

print(type(x)==type("HELLO")) #returns True

如果格式化字符串和普通字符串属于同一类型。 函数如何区分何时格式化或何时不格式化?

我的猜测是每当我在字符串之前指定f ,解释器就会获取变量的值并对其进行格式化然后函数接收格式化的字符串。

它是简洁的符号,就像Java 8中的lambdas一样吗?

在你的例子中:

x = f"There are {n} types of people"

x永远不是一个f字符串,它只是一个常规字符串,已经将{n}替换为变量n的值。

语法评估f字符串,结果对象类型为str

PEP 498

F字符串提供了一种使用最小语法在字符串文字中嵌入表达式的方法。 应该注意的是,f-string实际上是在运行时计算的表达式,而不是常量值。 在Python源代码中,f-string是一个文字字符串,前缀为'f',其中包含大括号内的表达式。 表达式将替换为其值

(强调我的)

它们是同一类型。

n = 5
f"There are {n} types of people"

在Python 3.6中引入的只是一种将变量插入字符串的新方法

这也可以写成

n = 5
"There are {:d} types of people".format(n)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM