网站首页 > 技术文章 正文
本教程中将介绍如何在 Python 中使用内置float()、int()函数、literal_eval()函数等,将字符串转换为浮点数 float 或整数 int。
在 Python 中将字符串转换为浮点数
Python 的内置函数 float(),可以将浮点型和整数型的字符串转换为浮点数。但是不能转换包含字母等非数值型字符的字符串。
>>> float("123.4")
123.4
>>> float("123.0")
123.0
>>> float("123")
123.0
>>> float("a123")
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
ValueError: could not convert string to float: 'a123'
>>> float("#123")
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
ValueError: could not convert string to float: '#123'
在 Python 中将字符串转换为整数
Python 的内置函数 int(),可以将整数型的字符串转换为整数,不能将浮点数型的字符串转换为整数,不能转换包含字母等非数值型字符的字符串。
>>> int("123")
123
>>> int("123.4")
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '123.4'
>>> int("123.0")
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '123.0'
可以将浮点数型字符串转换浮点数后,使用 int()将浮点数转换为整数。
>>> int(float("123.4"))
123
使用 literal_eval() 方法转换字符串
ast模块中的 literal_eval 方法可以把数值型的字符串转换为浮点数或整数。
>>> import ast
>>> ast.literal_eval("123.4")
123.4
>>> ast.literal_eval("123.0")
123.0
>>> ast.literal_eval("123")
123
>>> ast.literal_eval("a123.4")
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
File "D:\Backup\Desktop\thonny\lib\ast.py", line 46, in literal_eval
node_or_string = parse(node_or_string, mode='eval')
File "<unknown>", line 1
a123.4
^
SyntaxError: unexpected EOF while parsing
使用 atof() 方法转换包含千位分隔符的字符串
如果字符串中存在逗号,则转换将引发异常。但是逗号通常用作千位分隔符。
>>> float("123,456.7")
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
ValueError: could not convert string to float: '123,456.7'
>>> float("123,456")
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
ValueError: could not convert string to float: '123,456'
locale 模块可以用于设置设置区域信息,atof() 函数可以根据区域设置将给定的字符串转换为浮点数。
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
'en_US.UTF-8'
>>> locale.atof("123,456.7")
123456.7
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!
猜你喜欢
- 2025-01-31 你见过的最全面的Python重点知识总结
- 2025-01-31 Python 数据类型转换:编程基础必备知识
- 2025-01-31 Python 基础 之 元组(tuple)(python元组基本操作)
- 2025-01-31 每天学一点Python之NumPy基础11质因数
- 2025-01-31 学Python基础这么久了,花了好长时间精心记录的学习笔记
- 2025-01-31 Python带你找回童年的万花尺(python画万花筒)
- 2025-01-31 python 多表查询字段或者值(python字典查询多个值)
- 2025-01-31 Python实战之数字、日期和时间的高级处理
- 2025-01-31 一文讲清Python的数据类型、运算符和控制结构
- 2025-01-31 Python中为什么round(1.5)和round(2.5)都等于2?round()函数详解
- 263℃Python短文,Python中的嵌套条件语句(六)
- 262℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 255℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 255℃Python实现字符串小写转大写并写入文件
- 113℃原来2025是完美的平方年,一起探索六种平方的算吧
- 94℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)