2017-02-28 62 views
-1

以下代碼將打印None,然後進行輸入。如果我在print函數中傳遞一個字符串,它將打印它,然後是None,並期待輸入。爲什麼打印None代碼打印無,然後要求輸入。爲什麼?

input(print()) 
+0

因爲'print'什麼都不返回? – Li357

+1

由於打印語句返回無,並且您要求輸入任何打印返回 – abccd

+0

是否應始終打印返回的內容?即使我寫入輸入(print(「請輸入項目」)),它將打印字符串並然後寫無 –

回答

0

你有一個函數另一個函數內部:

input(print()) 

因此,什麼是括號內將首先執行。由於打印語句不返回任何內容,input()功能將不會收到任何價值,這將是這樣的:

input(None) 

由於input()功能在其括號打印任何東西,它打印「無」,並遵循在同一行上,它等待你的輸入。然後,輸入一個字符串並敲回車鍵後,該語句結束,因爲您不會將其存儲在任何地方。如果你在shell中,那麼它將打印你在撇號之間輸入的行。

+0

當其他語言返回void時,混淆實際上是面臨的,它不會以字符串形式返回/值。所以在通常情況下它不會打印任何東西。 Python在這裏玩的很不一樣。但我現在明白了。 –

+0

是的,與C++相比,python是一種高級語言,與前者相比,其工作方式不同。無論如何,你能否選擇我答案旁邊的勾號?謝謝。 –