2017-08-29 273 views
-4

假設浮點數x = 3.1234。我想在x的左側和右側的字符串中間打印這個數字。字符串長度將是可變的。 x的精確度將會變化。如果字符串長度= 10和精度= 2輸出將是" 3.14 "在Python中有任何可以返回這個功能?如何使用python在字符串中間放置一個數字?

+0

應該關閉 –

+0

什麼是字符串和什麼是正確的要求,請張貼示例代碼或更清晰。 –

+1

你真的認爲用言語解釋它比展示一個更快,更容易想出的例子更容易嗎? –

回答

1

這是真的很好記錄在https://docs.python.org/3.6/library/string.html#format-specification-mini-language

但既然你顯然沒有時間爲它谷歌:

>>> x = 3.1234 
>>> length=10 
>>> precision=2 
>>> f"{x:^{length}.{precision}}" 
' 3.1 ' 

恐怕你的精度概念不同意與Python的默認情況下。您可以通過指定f ixed點格式而不是默認的g ENERAL格式的修復:

>>> f"{x:^{length}.{precision}f}" 
' 3.12 ' 

這個符號是不是調用方法str.format()更加明晰。但是在Python 3.5和更早的版本,你需要做這個:

>>> "{x:^{length}.{precision}f}".format(x=x, length=length, precision=precision) 

但是,沒有與格式擺弄量將會做出3.1234出來爲3.14。我懷疑這是一個錯誤,但如果你確實是這個意思,那麼除了在格式化之前調整x的值,別無選擇。這裏是做的一個方法:

>>> from decimal import * 
>>> (Decimal(x)/Decimal ('0.02')).quantize(Decimal('1'), rounding=ROUND_UP) * Decimal('0.02') 
Decimal('3.14') 

這就將你的電話號碼爲大小爲0.02塊的整數,圍捕必要時再由0.02倍增再次得到你想要的值。

+0

f字符串只在python 3.6中,可能想使這個更一般。假設OP知道「格式」這個詞是他們需要谷歌的,這也不是很好。 –

+0

無論如何,我認爲OP需要去閱讀文檔。 – BoarGules

相關問題