0

我有这个 Python 代码:

file2.write(link) + '\n' + '\n' + '\n'

为什么它不起作用,但以下是:

file2.write((link) + '\n' + '\n' + '\n')
4

4 回答 4

6

前者调用函数,然后将字符串添加到结果中,这很可能是无效的,而且肯定是不正确的。后者将字符串加在一起并调用函数,传递加法的结果。

于 2012-05-30T04:55:12.987 回答
1

write 函数的括号应包含您要写入文件的所有内容。在第一个示例中,您编写(链接),然后在完成后给出一堆无意义的换行符。

在第二个示例中,您编写(链接 + 换行符),写入函数的右括号仅在末尾出现。因此,这是有效的。(虽然 write( (link) ) 有点矫枉过正)

总之:使用源代码编辑器为您突出显示匹配的括号。它使这些错误更容易被发现。

于 2012-05-30T04:59:04.360 回答
0
file2.write(link) + '\n' + '\n' + '\n'

您正在将link变量的内容写入文件file2。如果成功,此调用将返回 None,并且您将字符串'\n'连接到此结果。最后,只有link变量的内容会在文件中file2

file2.write((link) + '\n' + '\n' + '\n')

您首先将link变量的内容连接到字符串'\n',使用括号将优先级设置为字符串连接。然后将它们全部写入文件file2

于 2012-05-30T04:59:42.683 回答
0

当你调用时file2.write()write()对象是一个函数file2link是函数的参数,它是一个字符串。当您编写时,+ '\n' + '\n' + '\n' 该表达式的计算结果为字符串"\n\n\n"。如果您想编写link该字符串,则必须将它们作为一个字符串参数传递给函数write()。这是由file2.write((link) + '\n' + '\n' + '\n'). 否则,您只是调用函数并尝试将字符串连接到函数调用的返回值。

于 2012-05-30T05:01:02.433 回答