从Python打印时出现Str/Int类型错误

从Python打印时出现Str/Int类型错误,python,Python,我正在尝试将字符串数组中的一些结果写入文件。这个列表是包含数字的字符串,我想除以1000。如果我将结果转换保存到一个变量,我可以将其打印到一个文件中。但是,如果我尝试在一行中执行相同的操作,则会出现以下错误: TypeError: unsupported operand type(s) for /: 'str' and 'int' 知道发生了什么吗?以下是我的代码的简化版本: str_list = ['45000', '45500', '50000', '55000'] indx = 2 o

我正在尝试将字符串数组中的一些结果写入文件。这个列表是包含数字的字符串,我想除以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)

显然,短期的解决办法是使用第一种语法,但我想了解发生了什么以及为什么第二种语法不起作用

您只需在
浮动(str_list[indx])/1000
部分周围加上括号即可

o.write('%4.1f\t' % (float(str_list[indx])/1000))

否则,程序将尝试将字符串除以
1000

您只需在
浮点(str_list[indx])/1000部分周围放上括号即可

o.write('%4.1f\t' % (float(str_list[indx])/1000))

否则,程序将尝试将字符串除以
1000

首先计算
%

o.write('%4.1f\t' % float(str_list[indx])/1000)
类似于(注意括号):

你想要:

o.write('%4.1f\t' % (float(str_list[indx])/1000))

首先计算
%

o.write('%4.1f\t' % float(str_list[indx])/1000)
类似于(注意括号):

你想要:

o.write('%4.1f\t' % (float(str_list[indx])/1000))

啊,这是有道理的。谢谢啊,这是有道理的。谢谢