什么';在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)是打印函数的第二个参数