[英]Is it possible to filter out zero values in formatted string literals?
格式化字符串文字 (:+) 用於顯示數字的符號(+ 或 -)。 例如:
a = 2
b = -5
print(f"{a+b:+}")
output: -3
要么
a = 2
b = 5
print(f"{a+b:+}")
output: +7
如果 output 為 0,則給出 +0。
有沒有一種方法可以讓a和b的總和為 0,那么 output 應該什么都不返回(我不確定那是什么意思),或者 output 應該返回一個空字符串?
示例: Gn = c + (ab)
如果a是3 , b也是3,output應該是Gn = c。不是Gn=c+0
我試圖應用一些條件語句 wrt 0,而不是返回一個空字符串,但格式化字符串文字 (:+) 僅適用於整數。
有沒有一種方法可以讓 a 和 b 的總和為 0,那么 output 應該什么都不返回(我不確定那是什么意思),或者 output 應該返回一個空字符串?
做一個格式助手。 非零被認為是真的,所以如果數字是假的,你可以返回一個空字符串:
def fmt(i):
return f'{i:+}' if i else ''
a = 1
for b in range(3):
print(f'result: {fmt(a-b)}')
Output:
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:+}")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.