如何以编程方式设置Python f-string的整数下划线分隔格式?
Python整数加下划线分隔符,避免多余空格的方法
不用费劲手动算位数或指定固定宽度,直接在f-string里用:_d格式符就能搞定——输出的数字会自动用上下划线分隔千位,还不会带多余空格。看实际例子:
num = 123456789 print(f"number is {num:_d}") >>> number is 123_456_789 num = 1234 print(f"number is {num:_d}") >>> number is 1_234
如果是某些特殊场景需要动态对齐宽度,可以先计算格式化后的总长度再指定:
def calc_formatted_width(n): raw_str = str(n) # 下划线数量为(数字位数-1)//3,比如4位数字对应1个下划线 return len(raw_str) + (len(raw_str)-1) // 3 # 测试不同位数的数字 num_list = [1234, 123456789, 12, 9876543210] for num in num_list: width = calc_formatted_width(num) print(f"number is {num:{width}_d}") >>> number is 1_234 >>> number is 123_456_789 >>> number is 12 >>> number is 9_876_543_210
不过大多数场景下,第一种直接用{num:_d}的方法就足够简单高效。
内容的提问来源于stack exchange,提问作者Ziofil
相关产品推荐
相关产品推荐

