我想知道是否有一个好的 pythonic 方法来做这样的事情:
size1 = 4
size2 = 3
value = size1 - size2
def isSign(value):
if value > 0 :
return "+"
else :
return ""
print("My total gain is" + isSign(value) + str(value))
在这种情况下,我的字符串应该如下所示:
My total gain is +1
在值为 -1 的情况下,我的字符串应如下所示:
My total gain is -1
在值为 0 的情况下,我的字符串应如下所示:
My total gain is 0
如果可能的话,我也想避免使用外部模块。
请您参考如下方法:
您可以将 isSign(value) 替换为 (value > 0) * "+"。
这是有效的,因为 True == 1 和 False == 0,一个数字 n 是字符串的重复 >n 次,所以 0 * "+" 是空字符串 ""。
但是,有些人可能会觉得它不可读,事实证明我必须解释它是如何工作的。
使用 f 字符串:
f"My total gain is {(value > 0) * '+'}{value}"
