You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用f-string或str.format改写Python的.ljust字符串对齐语句?

如何用f-string或str.format()实现文本左对齐并补全短横线至指定宽度?

问题背景

需要输出字符串Current activity,并在右侧补全短横线,使最终总长度达到变量activityCols定义的26字符。原本用str.ljust()实现,现在想改用更现代的f-string或str.format()写法,但尝试的str.format()写法未生效,求可行方案。

原可用代码:

activityCols = 26
print("Current activity".ljust(activityCols, '-'))

输出示例:Current activity------------(总长度26)


可行解决方案

方案1:使用f-string(推荐)

f-string支持Python格式规范迷你语言,可直接在占位符中指定填充字符、对齐方式和目标宽度:

activityCols = 26
# 直接嵌入字符串的写法
print(f"{'Current activity':-<{activityCols}}")

# 拆分变量的更易维护写法
activity_text = "Current activity"
print(f"{activity_text:-<{activityCols}}")

格式说明::-<{activityCols} 表示用-作为填充字符,<代表左对齐,宽度由变量activityCols指定。

方案2:使用str.format()

若需兼容Python 3.5之前版本,可使用str.format(),注意格式字符串的正确写法:

activityCols = 26
# 关键字参数传递宽度
print("{:-<{width}}".format("Current activity", width=activityCols))

# 位置参数传递宽度
print("{0:-<{1}}".format("Current activity", activityCols))

格式说明:{:-<{width}} 中,:开启格式规范,-是填充字符,<表示左对齐,{width}引用传递的宽度参数。


常见无效写法原因

如果你的str.format()写法未生效,大概率是以下问题之一:

  • 未指定填充字符:默认填充空格而非短横线,比如"{:<26}".format(...)只会补空格
  • 格式符顺序错误:比如写成"{<:-26}"这类不符合格式规范的写法,会直接输出格式字符串本身而非格式化结果

内容的提问来源于stack exchange,提问作者isidore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:18:15