python-3.x 如何在数字中添加逗号并按小数点对齐

a14dhokn  于 2022-11-19  发布在  Python
关注(0)|答案(2)|浏览(209)

我可以按小数点对齐数字,但不知道如何添加逗号。我知道如何使用format()添加逗号,但不知道如何对齐和添加逗号。我需要按小数点对齐,同时也要有逗号。

print(f"{i + 1}\t\t\t{salary :11.2f}")

这是for循环中的一行。

bq3bfh9z

bq3bfh9z1#

如果我没理解错的话,这个方法对我很有效。用冒号后面的“〉25”替换你的3个制表符。“〉”向左添加空格,文本将向右对齐。25是你允许的字符空格数。25是我在这个例子中选择的一个任意数字,它可以是任何有足够空间来容纳你的字符串和所需空间的数字(比如,你拥有的最长的数字加上你的制表符空间)。2在“〉25”后面加上逗号可以用逗号打印数字。

salaries = [10000, 200000, 3000000, 40000000]

for i in range(len(salaries)):
    salary = salaries[i]
    print_string = f"{i + 1}{salary :>25,.2f}"
    print(print_string)
e0uiprwp

e0uiprwp2#

以下解决方案需要管理权限。
步骤1:安装德语区域设置。
1.1取消注解/etc/locale.gen中德语区域设置行
可以使用任何文本编辑器。编辑后的结果应如下所示:

grep ^de /etc/locale.gen
de_DE.UTF-8 UTF-8

1.2安装德语区域设置:

sudo locale-gen en_US.UTF-8 de_DE.UTF-8
sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8

步骤2.使用德语区域设置。例如:

#!/usr/bin/python3.9
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8') 
for i in range(0,10):
    salary=10000*i+1000
    print('{0:2d}\t\t\t'.format(i+1),end='')
    print(locale.format_string('%11.2f', salary))

输出量:
我的环境:

uname -a ; lsb_release -a |& grep -v ^No
Linux LAPTOP-YYYYYYYY 4.4.0-19041-Microsoft #1237-Microsoft Sat Sep 11 14:32:00 PST 2021 x86_64 x86_64 x86_64 GNU/Linux
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal

相关问题