2012-05-30 51 views
0

我有這樣的Python代碼:的Python:語法不起作用

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

爲什麼它不工作,但下列情況:

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

你爲什麼期望第一個工作?你期望他們要麼做什麼?您是否嘗試過分解這些步驟並檢查每個步驟的輸入和輸出? (即查看'link',查看'link +'\ n'+'\ n'+'\ n')這些是修辭問題;我不需要知道答案,但自己提出這樣的問題是找出這些問題的好方法。 – Ben

回答

6

前者調用函數,然後添加字符串的結果,這可能是無效的,肯定是不正確的。後者將字符串添加到一起並調用函數,傳遞添加的結果。

1

寫入函數的括號應該包含您要寫入文件的所有內容。在第一個例子中,你寫(鏈接),然後在完成之後給一些無意義的新行字符。

在第二個示例中,您編寫了(鏈接+換行符),寫入函數的右括號僅在末尾出現。因此,這工作。 (雖然寫((鏈接))有點矯枉過正)

總結:使用源代碼編輯器,爲您高亮顯示匹配的圓括號。它使這些錯誤更容易被發現。

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

你正在寫的link變量的內容到文件file2。如果調用成功,此調用將返回None,並將字符串'\n'連接到此結果。最後,只有link變量的內容將在文件file2中。

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

你串接link變量字符串'\n'第一的內容,使用括號的優先級設置爲字符串連接。然後將它們全部寫入文件file2

0

當您撥打file2.write()時,write()是對象file2上的功能。 link是一個字符串函數的參數。當你寫+ '\n' + '\n' + '\n'該表達式的計算結果爲字符串"\n\n\n"。如果要編寫link和該字符串,則必須將它們作爲一個字符串參數傳遞給函數write()。這通過file2.write((link) + '\n' + '\n' + '\n')完成。否則,你只是調用函數並試圖將字符串連接到函數調用的返回值。