这个问题在这里已有答案:
a = 19/3
print('just testing {a:1.4f}'.format (a))
在python 3.5中,这会导致错误KeyError: 'a'
。
我不明白为什么。我可以使用解决方法来克服错误,但如果有人能解释我为什么会收到错误,我真的很感激。
冒号之前的项是format()函数的参数的索引。有关详细信息,请参阅https://docs.python.org/3.5/library/stdtypes.html#str.format。
所以你的例子应该是:
a = 19/3
print('just testing {0:.4f}'.format (a))
或者,如果您运行的是python 3.6或更高版本,则可以使用f-strings:
a = 19/3
print(f'just testing {a:.4f}')
有关详细信息,请参阅https://docs.python.org/3/reference/lexical_analysis.html#f-strings
类似Dict的符号:
>>> a = 4
>>> b = 10
>>> 'just testing {num1}, {num2}'.format(num1 = a, num2 = b)
just testing 4, 10
顺序表示法
>>> a = 4
>>> b = 10
>>> 'just testing {0}, {1}'.format(a, b)
just testing 4, 10
使用类似dict的表示法:print('just testing {num}'.format(num=a))
或顺序表示法:print('just testing {0}'.format(a))
print('just testing {0:.4f}'.format (a))
这里变量的索引从0开始。所以如果你有另一个变量让我们说b=3.142
语法将是:
print('just testing {1:.2f} {0:.4f}'.format (a,b))