news 2026/7/22 11:31:55

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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. 特殊格式字符串(如带千分位、空格)需先清洗(去逗号、去空格)再转换。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 14:33:33

【课程设计/毕业设计】基于java教材征订管理系统基于微服务教材征订系统【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/20 19:28:36

2025国内评价高的宠物项圈权威榜单重磅发布

行业痛点分析当前宠物项圈领域面临着诸多技术挑战。一方面&#xff0c;定位精度不足是一大难题。在复杂城市环境中&#xff0c;宠物活动范围广&#xff0c;传统项圈的定位误差较大&#xff0c;难以准确追踪宠物位置。测试显示&#xff0c;部分项圈在高楼林立区域的定位误差可达…

作者头像 李华
网站建设 2026/7/21 19:02:54

为了过知网检测,我自费测了十大降AI平台,最好用的都在这了

家人们&#xff0c;现在学校查得是真严&#xff0c;不仅重复率&#xff0c;还得降ai率&#xff0c;学校规定必须得20%以下... 折腾了半个月&#xff0c;终于把市面上各类方法试了个遍&#xff0c;坑踩了不少&#xff0c;智商税也交了。今天这就把这份十大降AI工具合集掏心窝子…

作者头像 李华
网站建设 2026/7/21 19:53:12

【在Ubuntu22.04下,微星z790主板装机后无wifi模块】

在Ubuntu22.04下&#xff0c;微星z790主板装机后无wifi模块因为微星最新一批的支持wifi7的主板全都是高通的wifi模块&#xff0c;所以装机后没有网卡驱动&#xff0c;不显示wifi&#xff0c;解决方法为找一跟数据线把手机连接到电脑主机上&#xff0c;开启usb网络共享&#xff…

作者头像 李华
网站建设 2026/7/20 20:15:04

Django Cookie/Session:深入理解与实践

Django Cookie/Session:深入理解与实践 引言 在Web开发中,Cookie和Session是两种常见的用户数据存储方式。它们在保持用户状态、实现个性化体验等方面发挥着重要作用。本文将深入探讨Django框架中的Cookie/Session机制,包括其原理、配置、使用方法以及注意事项。 Cookie/…

作者头像 李华
网站建设 2026/7/21 1:17:36

WebForms Controls:深入理解与高效应用

WebForms Controls:深入理解与高效应用 引言 随着互联网技术的飞速发展,WebForms作为ASP.NET框架的核心技术之一,已经广泛应用于各种企业级应用开发中。WebForms Controls是WebForms的重要组成部分,它们为开发者提供了丰富的UI组件,极大地简化了Web应用程序的开发过程。…

作者头像 李华