【问题标题】:Python unsupported operand type(s) for +: 'float' and 'str+ 的 Python 不支持的操作数类型:'float' 和 'str
【发布时间】:2017-10-19 18:02:39
【问题描述】:

我正在编写一个简短的脚本,我计划在其中获取有关主机 PC 的一些信息并将其写入 Excel 工作簿。我还在学习东西,所以没什么花哨的。 我得到了我需要的所有数据,并且可以写入大部分内容。 不过,我似乎无法完成一件事。 尝试以下代码时:

hardwareSheet.write("B7", usage + "%")

我只能打印出 "usage" 变量,但是当我添加 +"%" 时,我不断收到以下错误:

TypeError: unsupported operand type(s) for +: 'float' and 'str'

我正在使用 xlsxwriter 库来创建和编写 excel。 hardwareSheet.write 是一个允许我将数据写入名为 hardware 的工作表的命令。 这是我获得“使用”变量的方式:

cpuInfo = wmi.Win32_Processor()[0]
usage = float(cpuInfo.LoadPercentage)

如果我没有将 cpuInfo.LoadPercentage 解析为浮点数,它将是一个字符串。 我用谷歌搜索了这个并读到我需要将 str 解析为浮点数,所以我这样做了。任何想法可能出了什么问题?

【问题讨论】:

  • 您不能将字符串添加到浮点数。您的程序是否需要对usage 进行算术运算?如果没有,请不要费心将其转换为浮点数。
  • 出于什么目的需要将usage 解析为浮点数?
  • @PM 2Ring - 是的,我对它做了一些算术运算,但在一个单独的函数中,所以我不必在全局变量中解析它。我现在明白了。干杯。

标签: python excel wmi


【解决方案1】:

你不能在 python 中添加浮点数和字符串。 usage 是一个浮点数。 "%" 是一个字符串。

你应该这样做:

str(usage) + '%'

【讨论】:

  • 好的,我刚刚检查了一下,我错了。 “用法”是一个整数。所以我需要把它改成一个字符串,对吗?
  • 好的,现在知道了。那是我的问题,将其更改为 str 后它正在工作。谢谢。
【解决方案2】:

这是获得相同输出的另一种选择。

'{0}%'.format(usage)

【讨论】:

    【解决方案3】:

    使用 Python 3.6+ 的尖端解决方案f-strings:

    hardwareSheet.write("B7", f'{usage}%')
    

    【讨论】:

      猜你喜欢
      • 2013-10-29
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 2019-01-27
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多