我如何打印一个整数与逗号作为千分隔符?
1234567 ⟶ 1,234,567
在句点和逗号之间决定不需要特定于区域设置。
我如何打印一个整数与逗号作为千分隔符?
1234567 ⟶ 1,234,567
在句点和逗号之间决定不需要特定于区域设置。
当前回答
浮点数:
float(filter(lambda x: x!=',', '1,234.52'))
# returns 1234.52
对于整数:
int(filter(lambda x: x!=',', '1,234'))
# returns 1234
其他回答
简单的回答是:
format (123456, ",")
结果:
'123,456'
Python 3
--
整数(不带十进制):
“{:d}”.format (1234567)
--
浮点数(带十进制):
“{:.2f}“.format (1234567)
其中f前面的数字表示小数点后的位数。
--
奖金
印度lakhs/crores编号系统(12,34,567)的快速启动功能:
https://stackoverflow.com/a/44832241/4928578
我有这个代码的python 2和python 3版本。我知道这个问题是关于python2的,但是现在(8年过去了,哈哈)人们可能会使用python3。Python 3代码:
import random
number = str(random.randint(1, 10000000))
comma_placement = 4
print('The original number is: {}. '.format(number))
while True:
if len(number) % 3 == 0:
for i in range(0, len(number) // 3 - 1):
number = number[0:len(number) - comma_placement + 1] + ',' + number[len(number) - comma_placement + 1:]
comma_placement = comma_placement + 4
else:
for i in range(0, len(number) // 3):
number = number[0:len(number) - comma_placement + 1] + ',' + number[len(number) - comma_placement + 1:]
break
print('The new and improved number is: {}'.format(number))
Python 2代码:(编辑。python代码不能工作。我认为语法是不同的)。
import random
number = str(random.randint(1, 10000000))
comma_placement = 4
print 'The original number is: %s.' % (number)
while True:
if len(number) % 3 == 0:
for i in range(0, len(number) // 3 - 1):
number = number[0:len(number) - comma_placement + 1] + ',' + number[len(number) - comma_placement + 1:]
comma_placement = comma_placement + 4
else:
for i in range(0, len(number) // 3):
number = number[0:len(number) - comma_placement + 1] + ',' + number[len(number) - comma_placement + 1:]
break
print 'The new and improved number is: %s.' % (number)
浮点数:
float(filter(lambda x: x!=',', '1,234.52'))
# returns 1234.52
对于整数:
int(filter(lambda x: x!=',', '1,234'))
# returns 1234
从评论到activestate recipe 498181,我重做了这个:
import re
def thous(x, sep=',', dot='.'):
num, _, frac = str(x).partition(dot)
num = re.sub(r'(\d{3})(?=\d)', r'\1'+sep, num[::-1])[::-1]
if frac:
num += dot + frac
return num
它使用正则表达式特性:超前,即(?=\d)来确保只有三个数字组成的“后面”有一个数字的组才会有逗号。我说'after'是因为在这一点上字符串是反向的。
[::-1]只是反转一个字符串。