won*_*bak 56 python string-formatting
对于具有千位分隔符的打印号,可以使用python格式字符串:
'{:,}'.format(1234567890)
Run Code Online (Sandbox Code Playgroud)
但是,如何指定我需要一个千位分隔符的空间?
Raz*_*Raz 55
如果你不想搞砸,这是一个糟糕但简单的解决方案locale:
'{:,}'.format(1234567890.001).replace(',', ' ')
Run Code Online (Sandbox Code Playgroud)
小智 16
@ user136036的答案非常好,但不幸的是它没有考虑到Python漏洞的现实.完整的答案可能如下:
如果您的平台的区域设置正常,那么只需使用区域设置:
import locale
locale.setlocale(locale.LC_ALL, '')
print("{:,d}".format(7123001))
Run Code Online (Sandbox Code Playgroud)
结果取决于您的语言环境和Python实现是否正常.
但是如果根据语言环境的Python格式化被破坏了,例如Linux上的Python 3.5呢?
如果Python不尊重grouping=True参数,您可以使用区域设置和变通方法(使用货币格式):
locale.setlocale(locale.LC_ALL, '')
locale._override_localeconv = {'mon_thousands_sep': '.'}
print(locale.format('%.2f', 12345.678, grouping=True, monetary=True))
Run Code Online (Sandbox Code Playgroud)
以上在我的平台上给出了12.345,68.将货币设置为False或省略它 - Python不会将数千个分组.指定locale._override_localeconv = {'thousands_sep': '.'}什么也不做.
如果你没有时间检查什么工作正常以及平台上的Python坏了什么,你可以使用常规字符串替换功能(如果你想交换逗号和点到点和逗号):
print("{:,.2f}".format(7123001.345).replace(",", "X").replace(".", ",").replace("X", "."))
替换空格的逗号是微不足道的(点是假设小数分隔符):
print("{:,.2f}".format(7123001.345).replace(",", " ")
use*_*036 14
这会将语言环境设置为您的默认操作系统位置:
import locale
locale.setlocale(locale.LC_ALL, '')
Run Code Online (Sandbox Code Playgroud)
然后你可以使用:
"{0:n}".format(1234567890)
Run Code Online (Sandbox Code Playgroud)
Pat*_*rik 10
假设您编写代码:
\nprint(f'{name} | Yearly salary: ${salary}.')\nRun Code Online (Sandbox Code Playgroud)\n\n\n打印 -> 凯特 | 年薪:60000美元。
\n
首先放一个 , 分隔符:
\nprint(f'{name} | Yearly salary: ${salary:,}.')\nRun Code Online (Sandbox Code Playgroud)\n\n\n打印 -> 凯特 | 年薪:60,000 美元。
\n
然后将逗号替换为空格:
\nprint(f'{name} | Yearly salary: {salary:,} USD.'.replace(',', ' '))\nRun Code Online (Sandbox Code Playgroud)\n\n\n打印 -> 凯特 | 年薪:60 000 美元。
\n
注意:记住 USD、$ 或 \xc2\xa3、克朗等。符号应符合相应的通用标准
\n| 归档时间: |
|
| 查看次数: |
29085 次 |
| 最近记录: |