当前位置: 首页 > article >正文

Python解决“数字字符串千分位转化”问题

Python解决“数字字符串千分位转化”问题

  • 问题
    • 样例
  • 解决
    • 代码

问题

A在工作时遇到了一个问题,他需要将用户输入的不带千分位逗号的数字字符串转换为带千分位逗号的格式,并且保留小数部分。A还发现,有时候输入的数字字符串前面会有无用的 0,这些也需要精简掉。请你帮助A编写程序,完成这个任务。

样例

样例1:

输入:s = “1294512.12412”
输出:‘1,294,512.12412’

样例2:

输入:s = “0000123456789.99”
输出:‘123,456,789.99’

样例3:

输入:s = “987654321”
输出:‘987,654,321’

解决

字符串处理和格式化输出的知识,是一道典型的字符串处理问题。
题目要求将用户输入的不带千分位逗号的数字字符串转换为带千分位逗号的格式,并且保留小数部分。同时,输入的数字字符串前面可能会有无用的 0,这些也需要精简掉。核心信息是处理整数部分和小数部分,分别进行格式化,并在整数部分添加千分位逗号。

使用 split 方法可以根据指定的分隔符将字符串分割成多个部分。
使用 format 方法可以对字符串进行格式化输出,例如添加千分位逗号。
rstrip 方法用于去除字符串末尾指定的字符。

代码

from collections import Counter

def solution(s:str) -> str:
    # 分割小数整数部分
    if '.' in s:
        integer_part, decimal_part = s.split('.')
    else:
        integer_part, decimal_part = s, None
    # 讲整数部分分为,千分位制("{:,}" 是格式化字符串的一种方式,表示在数字中插入千分位逗号。)
    formatted_integer = "{:,}".format(int(integer_part))
    # 拼接小数和整数部分
    if decimal_part:
        s = formatted_integer + '.' + decimal_part
    else:
        s = formatted_integer
    # 要删除多余的0部分
    return s.rstrip('0').rstrip('.')

if __name__ == '__main__':
    print(solution(s = "1294512.12412"))
    print(solution(s = "0000123456789.99"))
    print(solution(s = "987654321"))

输出:
1,294,512.12412
123,456,789.99
987,654,321


http://www.kler.cn/a/543225.html

相关文章:

  • 6.深度学习在推荐系统中的应用
  • qt 事件的传递顺序
  • Vue2生命周期面试题
  • ffmpeg -hwaccels
  • oracle执行grant授权sql被阻塞问题处理
  • NO.13十六届蓝桥杯备战|条件操作符|三目操作符|逻辑操作符|!||||(C++)
  • 制造企业智慧物流架构解决方案
  • leetcode_深度搜索和广度搜索 116. 填充每个节点的下一个右侧节点指针
  • C++17 中的 std::gcd:探索最大公约数的现代 C++ 实现
  • 笔试题笔记#3
  • PyTorch Lightning Trainer介绍
  • Spring 核心技术解析【纯干货版】- XII:Spring 数据访问模块 Spring-R2dbc 模块精讲
  • 如何在WinForms应用程序中读取和写入App.config文件
  • 记忆模块概述
  • 用AI做算法题1
  • 深度学习-111-大语言模型LLM之基于langchain的结构化输出功能实现文本分类
  • 网络工程师 (33)VLAN注册协议——GVRP协议
  • linux 内核结构基础
  • MFC程序设计(十二)绘图
  • 建筑兔零基础自学python记录18|实战人脸识别项目——视频检测07
  • EPL 4.01 Preview
  • 【Elasticsearch】文本分析Text analysis概述
  • 【鸿蒙开发】第二十九章 Stage模型-应用上下文Context、进程、线程
  • Unity 代码优化记录
  • 【c++】shared_ptr是线程安全的吗?
  • fun-transformer学习笔记-Task1——Transformer、Seq2Seq、Encoder-Decoder、Attention之间的关系