Я новачок пітона. Я просто знайомлюсь із методом форматування.
З книги, яку я читаю, щоб вивчити пітон
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 поділ завжди повертає поплавок.
Ви можете повторити це за допомогою 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"