python f字符串格式:显示数字符号?

t40tm48m  于 2023-02-18  发布在  Python
关注(0)|答案(5)|浏览(148)

关于python f字符串的基本问题,但找不到答案:如何强制浮点数或整数的符号显示?例如,什么f字符串使3显示为+3

xqk2d5yq

xqk2d5yq1#

来自文档:

  • 格式规范微型语言(强调):

| 选项|意义|
| - ------|- ------|
|一月一日|表示应将符号用于正数和负数。|
| '-'|指示符号应仅用于负数(这是默认行为)。|
文档示例:

>>> '{:+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字符串的示例:

>>> 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时需要注意的是,它既不是正数也不是负数,在python中,+0 = -0 = 0

>>> f'{0:+} {-0:+}'
'+0 +0'
>>> f'{0.0:+} {-0.0:+}'
'+0.0 -0.0'

0.0-0.0是不同的对象1。

  • 计算机科学0分(重点):

在某些计算机硬件signed number representations中,zero有两种不同的表示,正的表示与正数分组,负的表示与负数分组;这种对偶表示被称为带符号零,后一种形式有时被称为负零。

  1. Negative 0 in Python。另请查看Signed Zero (-0)
0sgqnhkj

0sgqnhkj2#

可以在f字符串中使用:+

number=3
print(f"{number:+}")

输出+3

w46czmvw

w46czmvw3#

可以使用f"{x:+}"添加带有f字符串的符号,其中x是需要添加符号的int/float变量。有关语法的详细信息,可以参考文档。

bvk5enib

bvk5enib4#

最快解决方案:f"{['', '+'][number>0]}{number}"

numbers = [+3, -3]

for number in numbers:
    print(f"{['', '+'][number>0]}{number}")

结果:

+3
-3

编辑:短时间分析:

import time

numbers = [+3, -3] * 1000000

t0 = time.perf_counter()
[print(f"{number:+}", end="") for number in numbers]
t1 = time.perf_counter()
[print(f"{number:+.2f}", end="") for number in numbers]
t2 = time.perf_counter()
[print(f"{['', '+'][number>0]}{number}", end="") for number in numbers]
t3 = time.perf_counter()
print("\n" * 50)
print("""number:+ : """ + str(round(t1-t0, 2)) + "s")
print("""number:+.2f : """ + str(round(t2-t1, 2)) + "s")
print("""['', '+'][number>0] : """ + str(round(t3-t2, 2)) + "s")

结果:

number:+ : 1.43s
number:+.2f : 1.98s
['', '+'][number>0] : 1.23s

看来我解整数最快了。

hlswsv35

hlswsv355#

如果x〉0,则使用if语句:..“”否则:。

相关问题