使用逗号的Python Tkinter格式编号输入

时间:2017-11-07 06:29:04

标签: python python-3.x tkinter tkinter-entry

我想知道如何将数字转换为带逗号的格式化“数字”格式。我在Mac OSX上。在条目小部件中输入和评估表达式,然后使用以下函数将其输出到标签小部件中:

def evaluate(self, event):
    data = self.e.get()
    self.ans.configure(text = "Answer: " + str(eval(data)))

我需要结果输出为“数字”格式。例如,如果输出是“34523000”,我希望它说“34,523,000”。

1 个答案:

答案 0 :(得分:1)

使用locale模块。

如果您使用的是Ubuntu,则可以在终端上键入locale -a来查看语言环境列表。在我的机器上,我看到了一个很长的列表,我可以从中选择,例如' en_US.utf8'。

完成后,请返回您的功能并进行以下更改:

import locale
# ...
# ...
# It is better to run this outside your function:
locale.setlocale(locale.LC_ALL, 'en_US.utf8')
# ...
# ...
def evaluate(self, event):
    entry_data = self.e.get()
    data = locale.format("%d", entry_data, grouping=True)
    # ...
    # ...

以下是您提供的示例数据的快速演示:

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.utf8')
'en_US.utf8'
>>> locale.format("%d", 34523000, grouping=True)
'34,523,000'