TypeError:一元+的错误操作数类型:'str'到列表

时间:2016-01-16 17:48:01

标签: python

这是我的清单:

nums= []
for n in range(10):
    thenums= random.randint(10,90)
    print(thenums, end= " ")
    nums.append(thenums)

现在我需要帮助分别编写每个整数,但是我在编写文件中单个行的列表中的每个数字时遇到问题。

with open("angles.txt", 'w') as h:
    for n in nums:
        h.write[str(n), + '\n'] 

1 个答案:

答案 0 :(得分:3)

你的语法相当远。这条线

h.write[str(n), + '\n'] 

生成一个包含两个元素的元组str(n)+ '\n';后者抛出你的异常:

>>> + '\n'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: bad operand type for unary +: 'str'

如果没有逗号,您可以正确连接数字和字符串:

>>> n = 42
>>> str(n) + '\n'
'42\n'

但是你也试图使用h.write,就像它是一个列表或字典:

>>> h = open('/tmp/demo.txt', 'w')
>>> h.write['42\n']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'

使用(...)括号来调用某些内容;正确的表达是:

h.write(str(n) + '\n')