Python字符串格式化出现多余空格?如何解决该问题?
问题原因与解决办法
原因
- 你的格式化字符串写法有误:
{:C>.1f}里的C不是Python字符串格式化的合法说明符,完全是多余的,应该删掉。 - 输出里的空格是
print函数的默认行为导致:当给print传入多个参数时,它会自动用空格分隔这些参数,所以print(格式化后的数字, 'C')会在两者之间添加空格。
解决办法
以下几种方式都符合{}格式化语法要求,且能消除多余空格:
方式1:把C直接放进格式化模板
最直接的做法是将字母C嵌入到format的模板字符串中,让格式化后的结果直接包含数字和C,这样print只需要传一个参数,自然不会出现分隔空格:
air_temperature = float(input()) print('{:.1f}C'.format(air_temperature))
方式2:用f-string(属于{}格式化语法范畴)
Python 3.6及以上支持的f-string本质也是基于{}的格式化语法,写法更简洁直观:
air_temperature = float(input()) print(f'{air_temperature:.1f}C')
方式3:修改print的分隔符参数
如果一定要分开传递数字和C两个参数,可以给print指定sep='',强制它不添加分隔空格:
air_temperature = float(input()) print('{:.1f}'.format(air_temperature), 'C', sep='')
内容的提问来源于stack exchange,提问作者Alex Atheus
相关产品推荐
相关产品推荐

