Аз съм питон newbie.I съм просто запознаване с формат метод.
От книга, която чета, за да науча питон
What Python does in the format method is that it substitutes each argument
value into the place of the specification. There can be more detailed specifications
such as:
decimal (.) precision of 3 for float "0.333"
>>> "{0:.3}".format(1/3)
fill with underscores (_) with the text centered
(^) to 11 width "___hello___"
>>> "{0:_^11}".format("hello")
keyword-based "Swaroop wrote A Byte of Python"
>>> "{name} wrote {book}".format(name="Swaroop", book="A Byte of Python")
В интерпретатора на питона, ако опитам
print("{0:.3}".format(1/3))
Той дава грешката
File "", line 24, in
ValueError: Precision not allowed in integer format specifier
Отговори:
6 за отговор № 1За да отпечатате числа с плаваща запетая, трябва да имате поне един от входовете като плувки, като този
print("{0:.3}".format(1.0/3))
Ако и двата входа са цели числа на оператора на деление, върнатият резултат също ще бъде в int, като десетичната част се съкращава.
продукция
0.333
Можете да конвертирате данните с плаващ float
такава функция
data = 1
print("{0:.3}".format(float(data) / 3))
6 за отговор № 2
По-добре е да добавите f
:
In [9]: print("{0:.3f}".format(1/3))
0.000
по този начин можете да забележите това 1/3
дава цяло число и след това коригирайте това 1./3
или 1/3.
.
2 за отговор № 3
Струва си да се отбележи, че тази грешка ще се случи само в Python 2. В python 3 делението винаги връща float.
Можете да повторите това с from __future__ import division
изявление в Python 2.
~$ python
Python 2.7.6
>>> "{0:.3}".format(1/3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Precision not allowed in integer format specifier
>>> from __future__ import division
>>> "{0:.3}".format(1/3)
"0.333"