關于python f-strings的基本問題,但找不到答案:如何強制顯示浮點數或整數的符號?即什么 f-string3顯示為 3?
uj5u.com熱心網友回復:
從檔案:
- 格式規范迷你語言:
| 選項 | 意義 |
|---|---|
' ' |
表示正數和負數都應使用符號。 |
'-' |
表示一個符號應該只用于負數(這是默認行為)。 |
來自檔案的示例:
>>> '{: f}; {: f}'.format(3.14, -3.14) # show it always
' 3.140000; -3.140000'
>>> '{:-f}; {:-f}'.format(3.14, -3.14) # show only the minus -- same as '{:f}; {:f}'
'3.140000; -3.140000'
>>> '{: } {: }'.format(10, -10)
' 10 -10'
上面使用f-strings 的例子:
>>> f'{3.14: f}; {-3.14: f}'
' 3.140000; -3.140000'
>>> f'{3.14:-f}; {-3.14:-f}'
'3.140000; -3.140000'
>>> f'{10: } {-10: }'
' 10 -10'
列印0為0 時的一個警告既不是正也不是負。在蟒蛇中, 0 = -0 = 0.
>>> f'{0: } {-0: }'
' 0 0'
uj5u.com熱心網友回復:
您可以使用 f-string 添加符號f"{x: }",其中x需要添加符號的 int/float 變數在哪里。有關語法的更多資訊,您可以參考檔案。
uj5u.com熱心網友回復:
您可以: 在 f-string 中使用
number=3
print(f"{number: }")
輸出
3
uj5u.com熱心網友回復:
像這樣:
numbers = [ 3, -3]
for number in numbers:
print(f"{['', ' '][number>0]}{number}")
結果:
3
-3
編輯:小時間分析:
import time
numbers = [ 3, -3] * 100
t0 = time.perf_counter()
[print(f"{number: }", end="") for number in numbers]
print(f"\n{time.perf_counter() - t0} s ")
t0 = time.perf_counter()
[print(f"{number: .2f}", end="") for number in numbers]
print(f"\n{time.perf_counter() - t0} s ")
t0 = time.perf_counter()
[print(f"{['', ' '][number>0]}{number}", end="") for number in numbers]
print(f"\n{time.perf_counter() - t0} s ")
結果:
f"{number: }" => 0.0001280000000000031 s
f"{number: .2f}" => 0.00013570000000000249 s
f"{['', ' '][number>0]}{number}" => 0.0001066000000000053 s
看起來我有最快的整數解決方案。
uj5u.com熱心網友回復:
使用 if 陳述句 if x > 0: .. "" else: .
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/383540.html
上一篇:洗掉出現在另一個資料框中的索引
