Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';在python格式化程序中,``和``之间的区别是什么?_Python_Escaping_Formatter - Fatal编程技术网

什么';在python格式化程序中,``和``之间的区别是什么?

什么';在python格式化程序中,``和``之间的区别是什么?,python,escaping,formatter,Python,Escaping,Formatter,有时,我会看到这样的用法: a = "foo" b = "bar" print "%s, %s" %(a, b) 有时像: print "%s, %s", (a, b) 幕后有什么不同吗?他们打印不同的东西: >>> print "%s, %s" %(a, b) foo, bar >>> print "%s, %s", (a, b) %s, %s ('foo', 'bar') 第一个使用字符串%s,%s“,并使用字符串格式运算符%将值a和b插入格式占位符

有时,我会看到这样的用法:

a = "foo"
b = "bar"
print "%s, %s" %(a, b)
有时像:

print "%s, %s", (a, b)

幕后有什么不同吗?

他们打印不同的东西:

>>> print "%s, %s" %(a, b)
foo, bar
>>> print "%s, %s", (a, b)
%s, %s ('foo', 'bar')
第一个使用字符串
%s,%s“
,并使用字符串格式运算符
%
将值
a
b
插入格式占位符。然后使用print语句打印生成的字符串


第二个将两件事传递给print语句:字符串
“%s,%s”
和元组
(a,b)
。这两种格式都是独立打印的,因此这里没有字符串格式设置。

最好开始使用.format()来代替

ie:打印({}{})。格式(a,b)


处理了很多问题,而且不必担心字符串、十进制等。

我更喜欢“{0}”。格式(a)第二个示例与第一个示例所做的事情不同,因此这里有一个明显的区别。可能您考虑的上下文与
print
不同?可能是在
logging
库中,或者数据库访问中,或者其他什么?第二个代码不是python格式化程序。第一个是字符串格式化程序。它将构建新字符串作为打印函数的参数。在第二次打印时,(a,b)是打印函数的第二个参数