Python字符串格式化

9 浏览
0 Comments

Python字符串格式化

这个问题在这里已经有了答案

字符串格式化:% 与.format与f字符串字面值

我正在研究一个开源项目的代码。 代码是用python编写的,不幸的是我对它不太熟悉。

我在代码中找到了很多这样的语句:

print "the string is %s" % (name_of_variable, )

我知道这与C语言类似,是一种正确格式化输出的方式,但我真的不理解括号内的“变量名”后面紧跟着逗号的含义。

我在Python文档中搜索过,但我没有找到有关这种语句的任何信息。 有人知道它的含义吗?

admin 更改状态以发布 2023年5月24日
0
0 Comments

如果name_of_variable是一个元组,则

print "the string is %s" % (name_of_variable)

将会引发一个TypeError

因此,您必须使用print“该字符串是%s”%(name_of_variable,)来打印它。

0
0 Comments

尾逗号是创建一个单元素元组的一种方式。通常,通过在括号内用逗号分隔一组值或变量来创建元组:

my_tuple = (1, 2, 3)

然而,实际上括号并不是必需的。你可以这样创建一个元组:

my_tuple = 1, 2, 3

当然,这会引发一个问题:对于单元素元组,如果你省略了括号,实际上只是将变量赋值给单个变量:

my_tuple = 1    # my_tuple is the integer 1, not a one-element tuple!

但是使用括号是有歧义的,因为将一个值用括号括起来是完全合法的:

my_tuple = (1)    # my_tuple is still the integer 1, not a one-element tuple

所以,为了表示一个单元素元组,你需要添加一个尾逗号:

my_tuple = 1,
# or, with parentheses
my_tuple = (1,)

字符串格式化接受一个元组作为参数,因此,如果你使用单元素元组,你需要使用尾逗号。(当然,字符串格式化对于仅传递一个变量的情况有特殊处理——在这些情况下,你可以直接使用值,而不是元组。)

0