我正在尝试将字符串数组的一些结果写入文件。该列表是实际包含数字的字符串,我想将其除以 1000。如果我将转换结果保存到一个变量,我可以毫无问题地将它打印到一个文件中。但是,如果我尝试在一行中执行完全相同的操作,则会出现以下错误:
TypeError: unsupported operand type(s) for /: 'str' and 'int'
知道发生了什么事吗?这是我的代码的简化版本:
str_list = ['45000', '45500', '50000', '55000']
indx = 2
o = open('Output_file.dat', 'w')
这有效....
x = float(str_list[indx])/1000
o.write('%4.1f\t' % x)
这不是
o.write('%4.1f\t' % float(str_list[indx])/1000)
明显的短期解决方法是使用第一种语法,但我想了解发生了什么以及为什么第二种语法不起作用。
请您参考如下方法:
你只需要在 float(str_list[indx])/1000 部分加上括号
o.write('%4.1f\t' % (float(str_list[indx])/1000))
否则程序将尝试将字符串除以1000
