python - 如何正确格式化全宽 unicode 字符串
问题描述
貌似python只加了一个半角空格来格式化字符串,但是对于全角字符,应该有一个全角空格或者两个半角空格。有什么解决办法吗?
代码是:
template = "{:3s}测试"
print(template.format("测试"))
print(template.format("测试二"))
然后输出:
测试 测试
测试二测试
当我更改3
为时4
,输出为:
测试 测试
测试二 测试
但我想要的输出是
测试 测试
测试二测试
解决方案
请参阅python 文档 format-examples,第 6 个示例显示我们可以使用{:*^30}
使文本居中并填充*
(^
表示居中,它前面的字符是填充字符)。在这个例子中,只需使用全角空间
来替换。*
所以最后,我的模板字符串是:
{: >3s}测试
>
表示右对齐。请参阅所有对齐字符的 python 文档格式规范
输出是:
测试测试
测试二测试
我还尝试使用两个半角空格作为填充字符,但它提高了ValueError: Invalid format specifier
.
希望答案对将来的人有所帮助
推荐阅读
- git - 如何在输入时取消 git bash 中的多行提交
- python - 端口 5432 上的 django..db.utils.operationserror
- java - 我如何过滤此映射以生成更优雅和干净的 sql 更新?
- r - `/.default`(residuals, sigmas) 中的错误:不一致的数组
- javascript - 更新后以错误的 MIME 类型发送的 React Build Stylesheets 和 Js 文件
- google-apps-script - Getting the error note of a formula with #NA in google sheets for a script
- html - 样式化组件 (DIV) 上的 onClick 事件处理
- django - How can I run an existing Django application?
- ruby-on-rails - ERROR: Error installing rails zeitwerk requires Ruby version >= 2.4.4
- python - 发送邮件时显示错误,例如,AttributeError: 'int' object has no attribute 'splitlines'