ValueError: could not convert string to float的解决方法

ValueError: could not convert string to float的解决方法问题描述最近用 python 写了一个小算法 读取 txt 文件中的数字 数字是用空格隔开的 后 读取进来的数字是 strng 字符串 尝试用循环把 list 里面的字符串转换为 float 的时候出现了这个问题 ValueError couldnotconv 字面意思 数值错误 无法把字符串转换为浮点数再翻译一下 就是说你想转换为浮点数的字符串中有的字符串转换

问题描述

最近用python写了一个小算法,读取.txt文件中的数字(数字是用空格隔开的)后,读取进来的数字是strng(字符串),尝试用循环把list里面的字符串转换为float的时候出现了这个问题:
ValueError: could not convert string to float
字面意思:数值错误:无法把字符串转换为浮点数
再翻译一下:就是说你想转换为浮点数的字符串中有的字符串转换不了,即不是数字
当时出的问题我没有截图,于是我自创了一遍错误供大家比对,看看是不是同样的问题








print(float('A')) 
Traceback (most recent call last): File "main.py", line 2, in 
  
    print(float('A')) ValueError: could not convert string to float: A 
  

ValueError: could not convert string to float: A
说明’A’这个字符串是不能转换为float的,可以自己检查一下错误提示,排查一下错误(但很有可能找不到,因为错误根本不是那个地方,我记得当时我的错误显示的是‘.’),也可能是我比较菜,大佬轻喷。

解决过程

我仔细看了看我的数据,也把它们打印出来看了看,也没发现里面有别的字符,于是在网上查了很多相关的帖子(包括CSDN,stack overflow之类的),下面我大概总结了几个解决方法,大概率解决你的问题。

解决方法

检查数据

暴力去除首尾各种字符

首先这个错误大概率是因为某些看不见的字符造成的,所以可以先尝试暴力去除这些字符,这里使用str.strip(),可以尝试的有str.strip("\n"),str.strip("\t")str.strip("\"")(去除")来移除字符串头部和尾部指定的字符,()什么都不填就是去除首尾空格

去除首尾字符后,再进行数据分割

line = line.split(" ") 括号内是两个数据之间的分隔符 

尽量减少步骤(玄学)

这个方法比较玄学,但是我确实通过这个方法解决了问题

lines = f.readlines() for line in lines: line = line.strip("\n") line = line.split(" ") line = [float(x) for x in line] 

new_line = [float(x) for x in new_line]这种写法尽量减少了出现问题的可能性,尝试这种写法有可能解决你的问题。

更新中

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210619.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:15
下一篇 2026年3月19日 上午7:15


相关推荐

  • 博客内容概要

    前言python课程周期及相关内容计算机基础操作系统和网络基础知识计算机硬件历史计算机硬件知识网络基础之网络协议Python开发Python基础pycharm安装PyCharm常用

    2022年3月29日
    51
  • tcpdump抓包命令怎么用_linux系统抓包工具

    tcpdump抓包命令怎么用_linux系统抓包工具今天要给大家介绍的一个Unix下的一个网络数据采集分析工具,也就是我们常说的抓包工具。与它功能类似的工具有wireshark,不同的是,wireshark有图形化界面,而tcpdump则只有命令行。由于我本人更习惯使用命令行的方式进行抓包,因此今天先跳过wireshark,直接给大家介绍这个tcpdump神器。这篇文章,我肝了好几天,借助于Linux的man帮助命令,我把tcpdump的用法全部研究了个遍,才形成了本文,不夸张的说,应该可以算是中文里把tcpdump.

    2022年10月14日
    5
  • tomcat启动startup.bat一闪而过

    遇到很多次运行startup.bat后,一个窗口一闪而过的问题,但是从来没去纠正怎样修改配置才是正确的,现在从网上查阅的资料整理如下:tomcat在启动时,会读取环境变量的信息,需要一个CATALINA_HOME与JAVA_HOME的信息,CATALINA_HOME即tomcat的主目录,JAVA_HOME即java安装的主目录,jdk的主目录。首先,要在环境变量处,配置JAVA_HOM

    2022年4月9日
    45
  • 卡方分布、方差分析

    卡方分布:首先我们先把现代数学中的数理统计中的卡方分布已经烂大街的定义先放下来,我先回到卡方检验的诞生的之地。在1900年,皮尔森发表了著名的关于卡方检验的文章,该文章被认为是现代统计学的基石之一。在该文章中,皮尔森研究了拟合优度检验:……(这里之所以加点的原因是因为,下面的话很不好理解,我们举一个实际一点的例子就容易理解了。)下面图片有个赌场的色子(注意阅读下面红色字体)…

    2022年4月8日
    122
  • 带宽与并发数

    带宽与并发数如有转载请注明出处哦 目的 做并发测试的时候 我们要根据自己的带宽看看网络能承受我们每秒到底能发送出多少个数据包 本篇博文是 介绍带宽与我们每秒最多发送的数据包的关系先说推出的结果并发数 带宽 Mb 67 2 数包大小 KB 注意这里的带宽 Mb 发送出的数据大小单位是 KB 下面为推到过程 首先要分清一下单位一个字节的等于八个位 位就是我们常说的二进制

    2026年3月20日
    2
  • 移动通信网络架构的演进过程_移动通信演进路线图

    移动通信网络架构的演进过程_移动通信演进路线图原文地址:http://blog.sina.com.cn/s/blog_64827e4c010105nl.html

    2026年2月10日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号