我的理解是,在Python中,单引号和双引号是可互换的。我遇到了令我困惑的错误:
for i in range(0, 50):
print('{%4s}'.format(i), end="")
上面的代码给了我一个KeyError(使用Python 3.4)。
如果我将格式函数字符串使用的引号切换为双引号,但是:
for i in range(0, 50):
print("{%4s}".format(i), end="") # double quotes in format string
它按预期工作。
有人可以帮助我了解这里发生了什么以及为什么?
答案 0 :(得分:1)
对于任何一种报价都无效;如你所说,报价没有区别。
我不确定您期望%4s
做什么,但它不是迷你语言格式的有效说明符。你想把每个数字填充到四个空格吗?如果是这样的话应该是:
print("{:4}".format(i), end="")
或只是
print(format(i, "4"), end="")
答案 1 :(得分:0)
不要尝试混合使用字符串模运算符和.format()函数。
您可以执行以下操作之一:
print("%4s" % i)
或者:
print(format(i, "4"), end="")
第二个看起来更干净,我更喜欢。