Python 时间转换器不工作,给我;无法将字符串转换为float";
我试图将时间从小时、分钟、秒转换为秒,但我不明白为什么会出现错误“无法将字符串转换为浮点”Python 时间转换器不工作,给我;无法将字符串转换为float";,python,matplotlib,Python,Matplotlib,我试图将时间从小时、分钟、秒转换为秒,但我不明白为什么会出现错误“无法将字符串转换为浮点” tmp1[1]是字符串tmp1的第二个字符。如果是:或其他非数字,则无法将其转换为浮点 如果您的输入是2:34.56,tmp[1]在运行时等于: seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp1[1]) 只有当len(tmp2)>2条件不运行其他条件时,您才可能打算运行该条件。一种解决方案是使用等于而不是大于 if len
tmp1[1]
是字符串tmp1
的第二个字符。如果是:
或其他非数字,则无法将其转换为浮点
如果您的输入是2:34.56
,tmp[1]
在运行时等于:
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp1[1])
只有当len(tmp2)>2条件不运行其他条件时,您才可能打算运行该条件。一种解决方案是使用等于而不是大于
if len(tmp2) == 2:
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp1[1])
elif len(tmp2) == 3:
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp2[2])
另一种选择是交换条件(正如@Błotosmętek在其回答中所做的那样)。无论哪种方式,您都应该对第二个条件使用elif
(else if)而不是if
,这样,如果第一个条件已运行,第二个条件将不会运行。如果第一个条件已执行,请不要尝试第二种形式:
if len(tmp2)>2:
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp2[2])
elif len(tmp2)>1:
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp1[1])
t
的值是多少?@Błotosmętek t是我输入它的时间,时间格式为2:34:56或2:34.56。依赖数据的问题应该包括数据的最小示例。-什么是t
?请阅读。如果您正在使用一个具有调试功能的IDE,那么现在是开始学习如何使用这些工具的好时机。有时,生成中间值而不是一条长线会有所帮助,因为您可以打印这些中间值,这有助于故障排除。t
是否可以同时具有两种形式-'hh:mm:ss'
和'hh:mm.ddd'
?其中'mm.ddd'
是分数分钟?如何修复它?
if len(tmp2)>2:
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp2[2])
elif len(tmp2)>1:
seconds = 60.0*60.0*float(tmp2[0])+60.0*float(tmp2[1])+float(tmp1[1])