精华内容
下载资源
问答
  • 它使用了最广泛使用的千位分隔符(,)和十进制标记(.),但它可以很快地修改为与其他区域设置的符号一起使用,或者用于创建一个适用于所有区域设置的解决方案。在def separate_thousands_with_delimiter(num_str): ...

    这个问题我来晚了,我在寻找解决办法的时候发现了这个问题。在

    将,符号与format()一起使用可以很好地工作,但是会带来一些问题,因为不幸的是,,符号不能应用于字符串。因此,如果您从数字的文本表示开始,那么在调用format()之前,必须将它们转换为整数或浮点。如果您需要同时处理需要保留的不同精度级别的整数和浮点数,format()代码会迅速变得相当复杂。为了处理这种情况,我最终编写了自己的代码,而不是使用format()。它使用了最广泛使用的千位分隔符(,)和十进制标记(.),但它可以很快地修改为与其他区域设置的符号一起使用,或者用于创建一个适用于所有区域设置的解决方案。在def separate_thousands_with_delimiter(num_str):

    """

    Returns a modified version of "num_str" with thousand separators added.

    e.g. "1000000" > "1,000,000", "1234567.1234567" > "1,234,567.1234567".

    Numbers which require no thousand separators will be returned unchanged.

    e.g. "123" > "123", "0.12345" > "0.12345", ".12345" > ".12345".

    Signed numbers (a + or - prefix) will be returned with the sign intact.

    e.g. "-12345" > "-12,345", "+123" > "+123", "-0.1234" > "-0.1234".

    """

    decimal_mark = "."

    thousands_delimiter = ","

    sign = ""

    fraction = ""

    # If num_str is signed, store the sign and remove it.

    if num_str[0] == "+" or num_str[0] == "-":

    sign = num_str[0]

    num_str = num_str[1:]

    # If num_str has a decimal mark, store the fraction and remove it.

    # Note that find() will return -1 if the substring is not found.

    dec_mark_pos = num_str.find(decimal_mark)

    if dec_mark_pos >= 0:

    fraction = num_str[dec_mark_pos:]

    num_str = num_str[:dec_mark_pos]

    # Work backwards through num_str inserting a separator after every 3rd digit.

    i = len(num_str) - 3

    while i > 0:

    num_str = num_str[:i] + thousands_delimiter + num_str[i:]

    i -= 3

    # Build and return the final string.

    return sign + num_str + fraction

    # Test with:

    test_nums = ["1", "10", "100", "1000", "10000", "100000", "1000000",

    "-1", "+10", "-100", "+1000", "-10000", "+100000", "-1000000",

    "1.0", "10.0", "100.0", "1000.0", "10000.0", "100000.0",

    "1000000.0", "1.123456", "10.123456", "100.123456", "1000.123456",

    "10000.123456", "100000.123456", "1000000.123456", "+1.123456",

    "-10.123456", "+100.123456", "-1000.123456", "+10000.123456",

    "-100000.123456", "+1000000.123456", "1234567890123456789",

    "1234567890123456789.1", "-1234567890123456789.1",

    "1234567890123456789.123456789", "0.1", "0.12", "0.123", "0.1234",

    "-0.1", "+0.12", "-0.123", "+0.1234", ".1", ".12", ".123",

    ".1234", "-.1", "+.12", "-.123", "+.1234"]

    for num in test_nums:

    print("%s > %s" % (num, separate_thousands_with_delimiter(num)))

    # Beginners should note that an integer or float can be converted to a string

    # very easily by simply using: str(int_or_float)

    test_int = 1000000

    test_int_str = str(test_int)

    print("%d > %s" % (test_int, separate_thousands_with_delimiter(test_int_str)))

    test_float = 1000000.1234567

    test_float_str = str(test_float)

    print("%f > %s" % (test_float, separate_thousands_with_delimiter(test_float_str)))

    希望这有帮助。:)

    展开全文
  • python 千位分隔符

    2020-11-21 01:37:07
    相关推荐2019-09-28 21:13 −Python python是一种跨平台的计算机程序设计语言,是一种面向对象的动态类型语言。 最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的...

    原博文

    2019-01-07 13:06 −

    >>>'{:,}'.format(1234567890) >>>'1,234,567,890' ...

    相关推荐

    2019-09-28 21:13 −

    Python python是一种跨平台的计算机程序设计语言,是一种面向对象的动态类型语言。 最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。(以上摘自百度百科) Python是一种解释型脚本语言,可以应用于以下领域...

    comment.png

    0

    attention.png

    1961

    2019-12-24 19:55 −

    1 Web应用 https://www.cnblogs.com/yuanchenqi/articles/8869302.html2 http协议 https://www.cnblogs.com/yuanchenqi/articles/8875623...

    2019-12-04 22:39 −

    是不是看到题目Python就点进来了。

    其实,只是个蒟蒻......

    不知道学校发了什么疯,现在连普通的信息课都在讲Python,是怕我们消化不了c++吗?

    虽然心里很不甘心,但不得不承认,许多时候(实际上是大部分),Python都比c++更简单。

    原因:

    1.Python不用打头文件(咳咳,纯属个...

    comment.png

    0

    attention.png

    465

    2019-12-06 14:02 −

    学习提纲

    生成指定范围的数值列表,语法格式如下:

    生成一个包括10哥随机数的列表,要求数的范围在10-100之间,代码如下

    import random

    randomnumber = [random.randint(10,100) for i in range(...

    2019-12-18 15:00 −

    保留字:and,as,assert,break,class,continue,

    def,del,elif,else,except,finally,

    forfromFalse,global,if,import,

    in,is,lambda,nonlocal,not...

    comment.png

    0

    attention.png

    181

    2019-12-24 21:14 −

    python-requests

    python-requests

    作用:能够模拟浏览器向服务器发送请求的库

    requests库的主要方法

    方法描述

    requests.request()构造一个请求,支持以下各种方法requests.get()获取html的主要方法requests.head(...

    comment.png

    0

    attention.png

    524

    2019-12-11 17:16 −

    Redis

    redis是一个key-value存储系统。

    赋值:set name alex查看所有key:keys *查看key对应的value:get name只存活2秒钟:set name jack ex 2

    Python操作Redissudo pip install redis

    1、操作模式r...

    2019-11-27 16:55 −

    1.安装

    需要安装得模块名为pyyaml,直接pip install pyyaml

    导入,直接import yaml

    2.yaml文件的格式

    文件格式输出可以是列表,可以是字典,可以嵌套。层级关系用空格区分,切记,不支持tab缩进

    a)键值对形式

    user: admin

    pwd: 123

    ...

    2019-11-23 12:52 −

    # Python3随手记 - [Python3随手记](#python3%e9%9a%8f%e6%89%8b%e8%ae%b0) - [list方法](#list%e6%96%b9%e6%b3%95) - [os](#os) - [imageio](#imageio) - [Python I...

    展开全文
  • 第六课 字段宽度、精度和千位分隔符(format方法)# 字段宽度、精度和千位分隔符# 100,000,000,000# 让一个数值在宽度为2的范围内输出,如果数值没到12位,左侧填充空格 4位呢print("a:{num:2}".format(num = 32)) # a...

    第六课 字段宽度、精度和千位分隔符(format方法)

    # 字段宽度、精度和千位分隔符

    # 100,000,000,000

    # 让一个数值在宽度为2的范围内输出,如果数值没到12位,左侧填充空格 4位呢

    print("a:{num:2}".format(num = 32)) # a:32

    print("a:{num:4}".format(num = 32)) # a: 32 中间有2个空格 包括32这两位 就是四个宽度

    # 字段宽度 可以用于 用python制作一个表

    # create table

    print("{header1:10}{header2:6}{header3:0}".format(header1="姓名",header2="年龄",header3=2))

    # 姓名 年龄 2

    # 解释一下上面输出的结果

    # 姓名后面到年龄(包含年龄是10个宽度) 年龄到2(包含年龄不包含2)是6个宽度 2后面没有空格 0个宽度

    print("{header1:10}{header2:2}".format(header1="姓名",header2="年龄"))

    print("{cell11:10}{cell12:2}".format(cell11 = "Bill", cell12=43))

    print("{cell21:10}{cell22:4}".format(cell21 = "Mike", cell22=34))

    '''

    姓名 年龄

    Bill 43

    Mike 34

    注意数字是左补空格 对于字符串是右补空格

    '''

    # 精读

    from math import pi

    print("float number:{pi:.3f}".format(pi = pi)) # float number:3.142

    print("float number:{pi:20.4f}".format(pi = pi))

    # float number: 3.1416

    # 解释:包含数字是20位

    # 截取字符串

    print("{msg:.5}".format(msg = "Hello World")) # Hello

    # 解释 截取前5个字符串

    print("{msg:.3}".format(msg = "Hello World")) # Hel

    # 千位分隔符

    print("One googol is {:,}".format(10 ** 10))

    # One googol is 10,000,000,000

    第七课 符号、对齐和用0填充 (fromat方法)

    # 符号、对齐和用0填充

    # 12 00000012

    from math import pi

    print("{pi:012.3f}".format(pi = pi)) # 00000003.142

    print("{pi:#12.3f}".format(pi = pi)) # 3.142 前面写# 也是表示 空格 填充

    # <(左对齐) ^(中对齐) >(右对齐)默认是右对齐

    print("{pi:#<12.3f}".format(pi = pi)) # 3.142#######

    print("{pi:#^12.3f}".format(pi = pi)) # ###3.142####

    print("{pi:?>12.3f}".format(pi = pi)) # ???????3.142

    print("{pi:0=12.3f}".format(pi = -pi))# -0000003.142

    print("{pi:?=12.3f}".format(pi = -pi)) # -??????3.142

    print("{pi:=12.3f}".format(pi = -pi)) # - 3.142

    展开全文
  • 我知道理论上大整数的数字可以按数千个分组,以提高可读性:Python 3.5.2 (default, Nov 17 2016, 17:05:23)[GCC 5.4.0 20160609] on linuxType "help", "copyright", "credits" or "license" for more information.&...

    我知道理论上大整数的数字可以按数千个分组,以提高可读性:

    Python 3.5.2 (default, Nov 17 2016, 17:05:23)

    [GCC 5.4.0 20160609] on linux

    Type "help", "copyright", "credits" or "license" for more information.

    >>> import locale

    >>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')

    'en_US.UTF-8'

    >>> locale.format('%d', 1234567890, grouping=True)

    '1,234,567,890'

    >>> "{:n}".format(1234567890)

    '1,234,567,890'

    但是,令人惊讶的是,这不适用于每个语言环境:

    >>> locale.setlocale(locale.LC_ALL, 'pl_PL.UTF-8')

    'pl_PL.UTF-8'

    >>> locale.format('%d', 1234567890, grouping=True)

    '1234567890'

    >>> "{:n}".format(1234567890)

    '1234567890'

    为什么数字没有格式化?我觉得这很奇怪.我希望打印出类似于1 234 567 890的东西.

    根据Format Specification Mini-Language,我们可以明确地强制执行两个可能的分隔符:逗号和下划线_.可悲的是,逗号不适合波兰语,因为它在那里被用作小数点分隔符,而像1_234_567_890这样的数字对于大多数人来说看起来很奇怪.

    我们能否以某种方式强制使用不间断的空间作为千位分隔符?

    解决方法:

    pl_PL语言环境千位分隔符似乎是empty.我不知道这是否准确地表示波兰的常见用法,但Python正确地根据pl_PL语言环境的规则格式化您的数字.这可能是区域设置文件中的错误.

    据我所知,没有选项可以手动指定千位分隔符和十进制标记字符.

    标签:python,integer,formatting,locale

    来源: https://codeday.me/bug/20190701/1350697.html

    展开全文
  • 千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值。 处理...
  • @ user136036的答案是相当不错的,但是不幸的是,它没有考虑到Python错误的真实性。 完整答案可能如下:变体A如果您的平台的语言环境运行正常,则只需使用语言环境即可:import localelocale.setlocale(locale.LC_...
  • I know that theoretically digits in large integers can be grouped by thousands for better readability:Python 3.5.2 (default, Nov 17 2016, 17:05:23)[GCC 5.4.0 20160609] on linuxType "help", "copyright...
  • 千位分隔符的完整攻略

    千次阅读 2020-12-11 06:04:16
    千位分隔符纯整数情况纯整数大概是所有情况里最简单的一种,我们只要正确匹配出千分位就好了。观察上面的数字,我们可以得出千分位的特征是到字符串终止位有 3n 个数字,不包括起始位。于是可以得到这样的函数:...
  • 我正在尝试使用'{:,}’.格式(数字),如下例所示,格式化pandas数据帧中的数字:# This works for floats and integersprint '{:,}'.format(20000)# 20,000print '{:,}'.format(20000.0)# 20,000.0问题是,对于具有整数...
  • 使用一条正则表达式将12345678转为12,345,678看到一个方法"12345678".replace(/(\d)(?=(?:d{3})+$)/g, '$1,')但是不太明白怎么实现的,或者大神们有没有更好的方法多谢各位的解答,说说自己的理解:主要是要搞懂?...
  • 将 “12,345.678” (str) 转化为 12345.678 (float) fromlocaleimport* setlocale(LC_NUMERIC,'English_US') atof('123,456')# 123456.0 转自...
  • 1、Python1.1 format方法:2.7版本以上直接用format设置千分位分隔符Python2.7(r27:82500,Nov232010,18:07:12)[GCC4.1.220070115(prerelease)(SUSELinux)]onlinux2Type"help","copyright","credits"or"license"form....
  •  设置千位分隔符:自定义函数+格式化处理 df['data'].map(lambda x : format(x, ',')) # 处理后依然是对象格式。设置千位分割符请小心操作,因为对电脑来说,这些已经不再是数字了,而是数字和逗号组成的字符串,要...
  • fig, (ax1, ax2) = plt.subplots(1, 2)ax1.get_yaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))2)我想增加标签的字体大小-因此增加字体,例如5000:plt.rc('...
  • python中怎么把千位分隔符以及货币符号去掉转成数值形式? 比如下面的这种 $10,000 ¥1,000,000.00 怎么转换成数值? 用正则表达就可以了 from re import sub money = '¥1,000,000' val = float(sub(r'[^...
  • * 字符串 千位符 千位分隔符,并且小数点后保留2位 * @param num * @return */ public static String num2thousand(String num) { String numStr = ""; if (!TextUtils.isEmpty(num)) { return numStr; } ...
  • 1. Basic soluation Match: [0-9](?=(?:[0-9]{3})+(?![0-9])) Replace: \g, 2. Match separator positions only, using lookbehind Match:(?[0-9])(?=(?:[0-9]{3})+(?![0-9])) Replace: ,
  • radix_point_left_str = split_result[0] # 小数点右边 radix_point_right_str = "" if 1 (split_result): radix_point_right_str = save_decimal_place_str.split('.')[1] # 千分位的分隔符以逗号作为基准 ...
  • 我正在使用python 2.5,因此我无法访问内置格式。我查看了Django代码intcomma(下面的代码中的intcomma_recurs),并意识到它效率低下,因为它是递归的,并且在每次运行时编译正则表达式也不是一件好事。 这不是一个...
  • 正则千位分隔符

    2021-07-26 10:03:44
    很多项目都涉及金额的都会有要求千位加,之类的分隔,就来学一个正则的替换吧。 正则知识点 表达式 可匹配 \w 任意一个字母或数字或下线线,也就是AZ,az0~9,_中任意一个 \d 任意一个数字,0~9中的任意一个 ...
  • 类别 .h文件 + (NSString *)df_moneyNumJoinThousandSegmentationWithStr:(NSString *)digitString .m文件 + (NSString *)df_moneyNumJoinThousandSegmentationWithStr:(NSString *)digitString ...
  • 将“12,345.678” (str)转化为12345.678 (float) from locale import * setlocale(LC_NUMERIC, 'English_US') atof('123,456') # 123456.0转自:https://www.cnblogs.com/meadow/p/6279313.html...
  • 1. Mandatory integer and fraction ^[0-9]{1,3}(,[0-9]{3})*\.[0-9]+$ 2. Mandatory integer and optional fraction. Decimal dot must be omitted if the fraction is omitted ^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]+)
  • 数字添加千位分隔符

    2017-10-23 18:02:00
    /** * 数字添加千位分隔符 * 使用:testFun(180000.22); * return 180,000.22; */let number={};number.testFun=function (num) { var source = String(num).split(".");//按小数点分成2部分 source[0] = source[0]....
  • 我有一个字符串,表示一个使用逗号分隔数千的数字。 如何将其转换为python中的数字?>>> int("1,000,000")生成ValueError。在我尝试转换它之前,我可以用空字符串替换逗号,但不知何故感觉不对。 有没有更...
  • 我有一个像这样的字符串:123456789....然后使用中间的数字组(我需要保留),我需要放置一个逗号数千个分隔符.所以这里的输出是:123,456,789我可以使用lookarounds捕获中间的数字,但它不会取代其他数字,我不知道如...
  • js金额千位分隔符(转)

    2017-08-17 15:57:00
    2019独角兽企业重金招聘Python工程师标准>>> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,095
精华内容 838
关键字:

python增加千位分隔符

python 订阅