Python3打印函数

Python3 Print Function

这可能是一个简单的问题,但我似乎无法让它在不同的排列中始终如一地工作。

Python3 相当于什么?

print >> sys.stdout, "Generated file: %s in directory %s\n" % (name+".wav", outdir)

我试过了

print("String to print %s %s\n", file=sys.stdout % (var1, var2))

print("String to print {} {}\n".format(var1, var2), file=sys.stdout)

既然 >> 运算符已不存在,Python3 中执行此操作的最佳方法是什么。我知道 % () 在打印函数的右括号内,但在使用格式以及同时打印到特定 file/stream 时我总是遇到麻烦。

将百分比放在字符串文字末尾的右边。

print("String to print %s %s\n" % (var1, var2), file=sys.stdout)

百分比运算符与任何其他二元运算符一样。它介于它正在操作的两件事之间——在本例中,格式字符串和格式参数。这与 print(2+2, file=sys.stdout) 有效而 print(2, file=sys.stdout + 2) 无效的原因相同。


(个人观点:我认为 format 比百分比样式格式好得多,所以你应该只使用你的第三个代码块,它的行为与你编写的一样)