当前位置:主页 > python教程 > Python增加去除数字的千位分隔符

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

发布:2023-03-06 10:00:01 59


给网友们整理相关的编程文章,网友蒋勤琼根据主题投稿了本篇教程内容,涉及到python去掉千分位分隔符、python怎么加千位分隔符号、python、千位分隔符、Python增加去除数字的千位分隔符相关内容,已被365网友关注,相关难点技巧可以阅读下方的电子资料。

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 cookbook》评价、笔记

    发布:2019-07-07

    这本书适合有一定Python基础的用户读,告诉你库使用的最佳实践的,刚开始接触库的时候可以参考用。它本身的内容组织就是针对一个问题一个解。个人认为是本好书,在学习使用库时省去了很


  • 解决Python报错:ValueError:operands could not be broadcast together with shapes

    发布:2023-04-05

    这篇文章主要给大家介绍了关于解决Python报错:ValueError:operands could not be broadcast together with shapes的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下


  • 一文掌握python中的__init__的意思及使用场景分析

    发布:2023-04-13

    __init__是构造方法,谁调用,表示谁(更直观的理解就是类的方法中,谁调用,表示谁,见下面第一个代码)!!并不是必选项,也就是说在类中,这个不是必须用的,那什么场景需要用到,什么场景不需要用到呢,感兴趣的朋友跟随小编一起看看吧


  • Python结合Sprak实现计算曲线与X轴上方的面积

    发布:2023-03-25

    这篇文章主要介绍了Python结合Sprak实现计算曲线与X轴上方的面积,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧


  • 利用Python实现Windows下的鼠标键盘模拟的实例代码

    利用Python实现Windows下的鼠标键盘模拟的实例代码

    发布:2022-06-29

    为网友们分享了关于Python的教程,本篇文章主要介绍了利用Python实现Windows下的鼠标键盘模拟的实例代码,具有一定的参考价值,有兴趣的可以了解一下


  • 实例讲解Python3如何利用print输出带颜色的彩色字体

    发布:2020-02-14

    用Python写命令行程序的时候,单一的输出颜色太单调了,所以下面这篇文章主要给大家介绍了关于Python3利用print输出带颜色的彩色字体的相关资料,需要的朋友可以参考下


  • python怎么定义变量

    python怎么定义变量

    发布:2022-09-06

    给网友朋友们带来一篇关于python的教程,python中变量就是代表某个数据(值)的名称。定义变量,如x=5,x是一个变量,它的值是5。变量和值之间用=链接。在赋值时,值是什么数据类型,就决定了这个变量的类型,变量名引用了数值的同


  • python常用时间库time、datetime与时间格式之间的转换教程

    发布:2023-04-04

    Python项目中很多时候会需要将时间在Datetime格式和TimeStamp格式之间转化,下面这篇文章主要给大家介绍了关于python常用时间库time、datetime与时间格式之间转换的相关资料,需要的朋友可以参考下


网友讨论