一文掌握在 Python 中将字符串转换为浮点数或整数

liftword4周前 (02-14)技术文章13

本教程中将介绍如何在 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 "", line 1, in 
ValueError: could not convert string to float: 'a123'
>>> float("#123")
Traceback (most recent call last):
  File "", line 1, in 
ValueError: could not convert string to float: '#123'

在 Python 中将字符串转换为整数

Python 的内置函数 int(),可以将整数型的字符串转换为整数,不能将浮点数型的字符串转换为整数,不能转换包含字母等非数值型字符的字符串。

>>> int("123")
123
>>> int("123.4")
Traceback (most recent call last):
  File "", line 1, in 
ValueError: invalid literal for int() with base 10: '123.4'
>>> int("123.0")
Traceback (most recent call last):
  File "", line 1, in 
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 "", line 1, in 
  File "D:\Backup\Desktop\thonny\lib\ast.py", line 46, in literal_eval
    node_or_string = parse(node_or_string, mode='eval')
  File "", line 1
    a123.4
         ^
SyntaxError: unexpected EOF while parsing

使用 atof() 方法转换包含千位分隔符的字符串

如果字符串中存在逗号,则转换将引发异常。但是逗号通常用作千位分隔符。

>>> float("123,456.7")
Traceback (most recent call last):
  File "", line 1, in 
ValueError: could not convert string to float: '123,456.7'
>>> float("123,456")
Traceback (most recent call last):
  File "", line 1, in 
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

?

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!

?

相关文章

在 Python 中将浮点数转换为整数方法指南

在 Python 中将浮点数转换为整数可能看起来很简单,但有一些重要的细微差别需要理解。让我们探讨所有可用的方法、它们的差异以及何时使用每种方法。基本浮点到整数转换方法Python 提供了多种将浮点数...

在 Python 中如何将字符串转换为整数

类似于内置的 str() 方法,Python 语言中有一个很好用的 int() 方法,可以将字符串对象作为参数,并返回一个整数。用法示例:# Here age is a string object a...

Python初学者练习:计算一个整数的各位数字之和

在这篇文章中,我们将编写一个程序来计算一个整数中各位数字的之和。示例:123:1+2+3=6方法1:使用while循环和整除运算符“//”、取余运算符“%”来计算这个python程序使用while循环...

编写程序随机产生30个1-100之间的随机整数,按5行6列的格式输出

大家好,我是皮皮。一、前言前几天在某乎上看到了一个粉丝提问,编写程序,随机产生30个1-100之间的随机整数并存入5行6列的二维列表中,按5行6列的格式输出?这里拿出来跟大家一起分享下。二、实现过程后...

「Python条件结构」if…else实现判断整数是否能不3和5整除

功能要求编写一个控制台应用程序,输入一个整数,判断它是否能同时被3和5整除,如能被整除则打印该数,显示“此数不能同时被3和5整除!”。实例代码num = int(input("请输入一个整数:"))i...

编程脑洞:如何用一个整数来表示一个列表?

原题 | Storing a list in an int (https://iantayler.com/2020/12/07/storing-a-list-in-an-int)作者 | Comput...