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

python 数字类型和字符串类型的相互转换

你想掌握在 Python 中数字类型(整数 int、浮点数 float)和字符串类型(str)之间的相互转换方法,这是 Python 基础中高频使用的操作,我会从基础方法、示例和避坑要点三个方面详细讲解。

一、数字类型转字符串类型(int/float → str)

核心方法是使用 Python 内置的str()函数,这是最通用、安全的方式,适用于所有数字类型。

1. 基础示例

python

# 1. 整数转字符串 num_int = 123 str_int = str(num_int) print(f"类型:{type(str_int)},值:{str_int}") # 输出:类型:<class 'str'>,值:123 # 2. 浮点数转字符串 num_float = 3.1415 str_float = str(num_float) print(f"类型:{type(str_float)},值:{str_float}") # 输出:类型:<class 'str'>,值:3.1415 # 3. 格式化转换(保留小数、补零等场景) # 需求:将浮点数转为保留2位小数的字符串(常用在金额展示) num_price = 99.5 str_price = f"{num_price:.2f}" # 用f-string格式化 print(f"格式化后:{str_price}") # 输出:格式化后:99.50 # 另一种格式化方式(format函数) str_price2 = "{:.2f}".format(num_price) print(str_price2) # 输出:99.50
2. 关键说明
  • str()函数不会改变数字的 “值表达”,仅改变类型;
  • 格式化转换(f-string/format)是数字转字符串的进阶用法,满足业务中 “指定格式” 的需求(如金额、百分比)。

二、字符串类型转数字类型(str → int/float)

需根据目标数字类型选择int()float()函数,核心前提是字符串必须是 “合法的数字格式”

1. 基础示例

python

# 1. 整数字符串转整数 str_int = "456" num_int = int(str_int) print(f"类型:{type(num_int)},值:{num_int}") # 输出:类型:<class 'int'>,值:456 # 2. 浮点数字符串转浮点数 str_float = "7.89" num_float = float(str_float) print(f"类型:{type(num_float)},值:{num_float}") # 输出:类型:<class 'float'>,值:7.89 # 3. 整数字符串转浮点数(兼容场景) str_int2 = "100" num_float2 = float(str_int2) print(num_float2) # 输出:100.0 # 4. 带千分位的数字字符串(需先处理) # 比如"1,234.56"直接转float会报错,需先去掉逗号 str_thousand = "1,234.56" num_thousand = float(str_thousand.replace(",", "")) print(num_thousand) # 输出:1234.56
2. 异常处理(避坑关键)

如果字符串不是合法数字格式(如包含字母、特殊符号),直接转换会抛出ValueError,新手需注意捕获该异常:

python

# 安全转换示例:给用户输入的字符串转数字 def str_to_num(s): """安全将字符串转为数字,优先转int,失败则转float,仍失败返回None""" try: return int(s) except ValueError: try: return float(s) except ValueError: print(f"错误:'{s}' 不是合法的数字格式") return None # 测试 print(str_to_num("abc")) # 输出:错误:'abc' 不是合法的数字格式 → None print(str_to_num("123a")) # 输出:错误:'123a' 不是合法的数字格式 → None print(str_to_num("7.8")) # 输出:7.8

三、常见注意事项

  1. 浮点数转字符串的精度问题:str(0.1)实际输出是"0.1",但str(0.1 + 0.2)会输出"0.30000000000000004"(浮点数本身的精度特性),如需精准展示,建议用格式化:

    python

    print(str(0.1 + 0.2)) # 0.30000000000000004 print(f"{0.1 + 0.2:.1f}") # 0.3(精准保留1位小数)
  2. 空字符串、全空格字符串转换:int("")float(" ")都会报错,需先做非空 / 去空格校验。

总结

  1. 数字转字符串:优先用str()做基础转换,需指定格式时用f-stringformat()
  2. 字符串转数字:用int()/float(),必须确保字符串是合法数字格式,生产环境建议加try-except捕获ValueError
  3. 特殊格式字符串(如带千分位、空格)需先清洗(去逗号、去空格)再转换。
http://www.jsqmd.com/news/145234/

相关文章:

  • 计算机Java毕设实战-基于微服务教材征订系统基于SpringBoot+vue的教材管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 深入解析:GitHub 一周热门项目速览 | 2025年12月1日
  • 小童童装怎么选?这篇高性价比推荐攻略宝妈必收藏 - 品牌测评鉴赏家
  • Week 9
  • scrapy基础知识之发送POST请求
  • scrapy基础知识之发送GET请求
  • Python返回数组/List长度的方法
  • 纯干货无广:基于真实体验的十大好用降AI工具红黑榜
  • 2025最新!研究生必备9个AI论文平台测评与推荐
  • 为了过知网检测,我自费测了十大降AI平台,最好用的都在这了
  • 如何开启第一次开源贡献之路?
  • 2025年儿童鞋服品牌前十名盘点:专业、舒适、潮流怎么选? - 品牌测评鉴赏家
  • 2026微信公众号服务号、订阅号、小程序、企业微信、微信开放平台、微信开发者平台区别
  • CSS定位的特殊应用
  • MySQL 创建数据库
  • IT监控:多场景探测+可视化诊断,实现网络故障快速排查
  • 国货之光!这10+国产儿童鞋服品牌闭眼入,宝妈收藏这篇就够了 - 品牌测评鉴赏家
  • DBeaver设置不断开连接
  • 国产三维设计软件 ZWPD vs 国外主流平台:协同效率与成本优势分析
  • 2025年国内儿童鞋服品牌前十名 综合排行榜(性价比 品质优选) - 品牌测评鉴赏家
  • Mozz TCAD丨晶体-器件坐标系的精准映射:MOZZ 各向异性模型的坐标配准方法
  • WebForms Controls:深入理解与高效应用
  • 学长血泪复盘:试错半个月,终于找到这十大靠谱降AI方法
  • AI Agent在心理健康领域的应用:情绪支持与干预
  • 2025年宝妈必看!中国十大童装品牌实力测评,从新生儿到学龄童全覆盖 - 品牌测评鉴赏家
  • 学长亲荐8个AI论文软件,专科生轻松搞定毕业论文!
  • PostgreSQL 时间/日期处理指南
  • 【社交APP上线记】小夏、老周、小林的讨论组
  • 年末财税稳控,让发票与收入成本“零隐患”
  • 为什么fastlio的frame_id是carmera_init