Python 3.5 .format()方法[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 3.5 .format()方法[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

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))

以上是关于Python 3.5 .format()方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.5中抽象方法的主体[重复]

Python 3.5+中的递归类型[重复]

无法将 Python 3 (3.5) 带入 venv [重复]

Python模块适用于2.7但不适用于3.5 [重复]

Python 3.6 和 Python 3.5 中字典顺序之间的差异 [重复]

Python 3.5 TypeError:参数有多个值[重复]