我有這樣的Python代碼:的Python:語法不起作用
file2.write(link) + '\n' + '\n' + '\n'
爲什麼它不工作,但下列情況:
file2.write((link) + '\n' + '\n' + '\n')
我有這樣的Python代碼:的Python:語法不起作用
file2.write(link) + '\n' + '\n' + '\n'
爲什麼它不工作,但下列情況:
file2.write((link) + '\n' + '\n' + '\n')
前者調用函數,然後添加字符串的結果,這可能是無效的,肯定是不正確的。後者將字符串添加到一起並調用函數,傳遞添加的結果。
寫入函數的括號應該包含您要寫入文件的所有內容。在第一個例子中,你寫(鏈接),然後在完成之後給一些無意義的新行字符。
在第二個示例中,您編寫了(鏈接+換行符),寫入函數的右括號僅在末尾出現。因此,這工作。 (雖然寫((鏈接))有點矯枉過正)
總結:使用源代碼編輯器,爲您高亮顯示匹配的圓括號。它使這些錯誤更容易被發現。
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
和該字符串,則必須將它們作爲一個字符串參數傳遞給函數write()
。這通過file2.write((link) + '\n' + '\n' + '\n')
完成。否則,你只是調用函數並試圖將字符串連接到函數調用的返回值。
你爲什麼期望第一個工作?你期望他們要麼做什麼?您是否嘗試過分解這些步驟並檢查每個步驟的輸入和輸出? (即查看'link',查看'link +'\ n'+'\ n'+'\ n')這些是修辭問題;我不需要知道答案,但自己提出這樣的問題是找出這些問題的好方法。 – Ben