Python基础教程之增加和去除数字的千位分隔符

 更新时间:2023年01月16日 08:56:49   作者:wmsofts  
千位分隔符其实就是数字中的逗号,下面这篇文章主要给大家介绍了关于Python基础教程之增加和去除数字的千位分隔符,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值。

处理财务数据时,经常会和千分位符号打交道。经常看数字时,如果位数很多,往往要一位位的数,才知道具体的金额。如果有千分位符,那么一眼就知道金额的具体大小。目前千分位符在手机银行和计算器中较常见。

现编写2个函数,1个函数输入带千分位符的字符串(带千分位符就不再是数字了)输出数字,另1个函数输入数字(如果数字是小数则只保留小数点后2位)输出带千分位符的字符串。

1.去掉千分位

解析:千分位就是数字中的逗号,直接去掉逗号即可。

input_amount = input()
output_amount = float(input_amount.replace(',',''))
print('去掉千分位后的数字为', output_amount)

2.添加千分位

解析:千分位只针对整数部分,不针对小数部分。

千分位符是从右边开始,每隔3位数添加一个英文逗号,那么先把数字左右倒转(如23456->65432),然后遍历字符串每隔3个字符添加一个英文逗号,然后再次将字符串左右倒转,最后输出结果。

如果输入的数字是整数,流程如上。

如果输入的数字是小数,首先将小数拆分为整数部分和小数部分,最后将处理后的整数部分和原始的小数部分拼接起来作为结果输出。

添加千分位的步骤如下:

1. 拆分成整数部分和小数部分

# 将数字转为字符串
number = 12345
number_str = str(number)
    
# 拆分成整数部分和小数部分
number_str_list = number_str.split('.')
integer_part = number_str_list[0]
decimal_part = None if len(number_str_list) == 1 else number_str_list[1]

2.为整数部分添加千分位

new_integer_part = ''
reversed_integer_part = integer_part[::-1] # 将字符串左右反转
for i, c in enumerate(reversed_integer_part): # 遍历字符,每隔3个字符加逗号
    if i > 0 and i%3 == 0:
        new_integer_part = new_integer_part + ',' + c 
    else:
        new_integer_part += c
new_integer_part = new_integer_part[::-1] # 将字符串左右反转

3.将整数部分和小数部分整合

if decimal_part:
    print('添加千分位后数字变为', new_integer_part + '.' + decimal_part)
else:
    print('添加千分位后数字变为', new_integer_part)

附:Python每三位用逗号分隔(千位分隔符)

用Python自带的format和str.format可以给整数、浮点数、复数、Decimal数添加千位分隔符。PEP 378标准里有千位分隔符的格式的详细说明。

以下用了两种方案实现:

用locale

import locale

# empty string for platform's default settings
locale.setlocale(locale.LC_ALL, '')
print(format(4901711, "n")) # -> 4,901,711
print("{:n}".format(4901711)) # -> 4,901,711
print("{:d}".format(4901711)) # 4901711

不用locale(推荐)

from decimal import Decimal

print(format(1234567, ',d'))
print('{:,d}'.format(1234567))
print(format(1234567.89, ',.2f'))
print(format(12345.6 + 8901234.12j, ',f'))
print(format(Decimal('1234567.89'), ',f'))

总结

到此这篇关于Python基础教程之增加和去除数字的千位分隔符的文章就介绍到这了,更多相关Python增加去除数字的千位分隔符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python线性方程组求解运算示例

    Python线性方程组求解运算示例

    这篇文章主要介绍了Python线性方程组求解运算,涉及Python使用scipy.linalg.solve进行方程组求解运算的相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Python 文本文件内容批量抽取实例

    Python 文本文件内容批量抽取实例

    今天小编就为大家分享一篇Python 文本文件内容批量抽取实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 利用pycharm调试ssh远程程序并实时同步文件的操作方法

    利用pycharm调试ssh远程程序并实时同步文件的操作方法

    这篇文章主要介绍了利用pycharm调试ssh远程程序并实时同步文件的操作方法,本篇文章提供了利用pycharm远程调试程序的方法,且使用的编译器可以是服务器中的虚拟环境的编译器,可以实时同步本地与服务器的文件内容,需要的朋友可以参考下
    2022-11-11
  • pandas实现选取特定索引的行

    pandas实现选取特定索引的行

    下面小编就为大家分享一篇pandas实现选取特定索引的行,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python numpy.power()数组元素求n次方案例

    python numpy.power()数组元素求n次方案例

    这篇文章主要介绍了python numpy.power()数组元素求n次方案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 通过celery异步处理一个查询任务的完整代码

    通过celery异步处理一个查询任务的完整代码

    今天小编就为大家分享一篇通过celery异步处理一个查询任务的完整代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python基于文件内容实现查找文件功能

    Python基于文件内容实现查找文件功能

    无论是Linux系统还是Windows系统都有基于文件名实现过滤、查找的功能。但是如果想要查找一些关于某些文件指定内容的文件,好像它们明面上没有这样的功能了。这个时候就可以通过 Python 来实现这样的功能,快跟随小编一起学习一下吧
    2022-05-05
  • python 中的 return 解析

    python 中的 return 解析

    这篇文章主要介绍了python 中的 return 解析,return 语句用于退出函数,向调用方返回一个表达式。执行到 return 语句时,会退出函数,return 之后的语句不再执,下文下边就利用举例给大家讲解该内容得相关资料,需要的小伙伴可以参考一下
    2022-02-02
  • Django框架模板用法入门教程

    Django框架模板用法入门教程

    这篇文章主要介绍了Django框架模板用法,结合简单入门实例形式分析了Django框架模板标签、过滤器、模板继承等概念与使用技巧,需要的朋友可以参考下
    2019-11-11
  • MacOS(M1芯片 arm架构)下安装tensorflow的详细过程

    MacOS(M1芯片 arm架构)下安装tensorflow的详细过程

    这篇文章主要介绍了MacOS(M1芯片 arm架构)下如何安装tensorflow,本节使用的版本是tensorflow2.4 python3.8,因此并未安装加速插件,本文结合实例代码详细讲解,需要的朋友可以参考下
    2023-02-02

最新评论