格式化字符串字面值(:+)用于显示数字的符号(+或-)。例句:
a = 2
b = -5
print(f"{a+b:+}")
output: -3
或
a = 2
b = 5
print(f"{a+b:+}")
output: +7
如果输出为0,则给出+0。
和是否有一种方法和b是0,输出应该什么也不返回(我不确定这意味着什么),或者输出一个空字符串?示例:Gn = c + (a-b)如果是3和b是3输出也应该是Gn =c,而不是Gn=c+0
我已经尝试应用一些条件语句wrt 0,返回一个空字符串,而不是格式化字符串字面值(:+)只适用于整数。
是否有一种方法,如果a和b的总和为0,输出应该什么也不返回(我不确定这意味着什么),或者可能输出一个空字符串?
创建一个格式帮助器。非零被认为是True,因此如果数字为false,则可以返回一个空字符串:
def fmt(i):
return f'{i:+}' if i else ''
a = 1
for b in range(3):
print(f'result: {fmt(a-b)}')
输出:
result: +1
result:
result: -1
我不确定我完全跟上了,但在你的情况下,也许只是做计算和分支:
c = 1
a = 2
b = 3
a_minus_b = a - b
if a_minus_b:
print(f"Gn = {c} + ({a} - {b})")
else:
print(f"Gn = {c}")
当然,这可以做得更花哨(如果可读性较差),例如
print(f"Gn = {c} + ({a} - {b})" if a_minus_b else f"Gn = {c}")
或
print(f"Gn = {c}" + f" + ({a} - {b})" if a_minus_b else "")
您可以插入一个条件语句来检查两个变量的和,如果如果和为零,您可以打印空字符串字面量,否则您可以打印实际值。
a = 2
b = -3
if a + b == 0:
print(f"")
else:
print(f"{a+b:+}")