收到此错误:TypeError:+不支持的操作数类型:“ float”和“ str”

时间:2019-10-13 22:43:07

标签: python

即使我已将所有内容都转换为浮点数,但似乎仍认为这里的某个数字是字符串。帮助吗?

starttime = float(0.0)
endtime = float(8000.0)
print('Total Time:')
z = float(endtime - starttime)
if z<=float(60.0):
    print(z+ ' seconds')
elif z>float(60):
    print(z/float(60.0) +' minutes')
elif z>float(3600.0):
    print(z/float(3600) +' hours')

2 个答案:

答案 0 :(得分:1)

In [2]: starttime = float(0)
    ...: endtime = float(8000)
    ...: print('Total Time:')
    ...: z = endtime - starttime
    ...: if z<=60:
    ...:     print(z+ ' seconds')
    ...: elif z>60:
    ...:     print(str(z/60) +' minutes')
    ...: elif z>3600:
    ...:     print(str(z/3600) +' hours')
    ...:     
Total Time:
133.33333333333334 minutes

您的代码中有很多冗余和样板。

一旦您声明了浮点数:

  1. 对该浮点数的任何算术运算始终会导致浮点数;因此无需在结果上再次调用float
  2. 要使用内置函数str将浮点数转换为字符串,以便可以与minutes之类的另一个字符串连接,并可以将其传递给print函数它期望。

答案 1 :(得分:0)

问题出在打印语句中。您需要先将浮点数转换为字符串,然后再连接浮点数和字符串。