私はこのPythonコードを持っています:
file2.write(link) + '\n' + '\n' + '\n'
なぜそれが機能しないのですか、しかし以下は機能します:
file2.write((link) + '\n' + '\n' + '\n')
私はこのPythonコードを持っています:
file2.write(link) + '\n' + '\n' + '\n'
なぜそれが機能しないのですか、しかし以下は機能します:
file2.write((link) + '\n' + '\n' + '\n')
前者は関数を呼び出してから結果に文字列を追加しますが、これはおそらく無効であり、確かに正しくありません。後者は文字列を足し合わせて関数を呼び出し、足し算の結果を渡します。
write 関数の括弧は、ファイルに書き込みたいすべてのものを囲む必要があります。最初の例では、(リンク) を書き、それが終わった後に意味のない改行文字をたくさん与えます。
2 番目の例では、 write( link + newlines ) で、 write 関数の閉じ括弧は最後にのみ付けます。したがって、それは機能します。( write( (link) ) はやややり過ぎですが)
要約すると、一致する括弧を強調表示するソース コード エディターを使用してください。これらのエラーを見つけやすくなります。
file2.write(link) + '\n' + '\n' + '\n'
link変数の内容をファイルに書き込んでいますfile2。この呼び出しは成功すると None を返し、'\n'この結果に文字列を連結しています。最後に、link変数の内容のみがファイルになりますfile2。
file2.write((link) + '\n' + '\n' + '\n')
link最初に変数の内容を'\n'文字列に連結し、括弧を使用して文字列連結の優先順位を設定します。そして、それらすべてをファイルに書き込みますfile2。
を呼び出すとfile2.write()、write()オブジェクトの関数になりますfile2。link文字列である関数への引数です。あなたが書くとき+ '\n' + '\n' + '\n' その式は文字列に評価されます"\n\n\n"。とその文字列を書きたい場合はlink、それらを 1 つの文字列引数として関数に渡す必要がありますwrite()。これは、によって達成されfile2.write((link) + '\n' + '\n' + '\n')ます。それ以外の場合は、関数を呼び出して、文字列を関数呼び出しの戻り値に連結しようとしています。