今天在逛知乎時,發現一個以前自己也感到疑惑的問題!問題是如下圖:

比如上例,同樣是使用ctypes類庫調用C語言中的printf功能,前者輸出的是需要輸出的對象,而後者卻輸出了字元串的長度。
這個例子非常有意思 提醒:使用不熟悉的函數和library是危險的。
首先,先看這個例子,隻是把helloworld.cpp 略加改動,題主覺得這個代碼應當輸出什麼結果?
#include #include using namespace std;int main(){ cout<
答案是這樣:
python執行cmd指令行_python代碼有時候在指令行下和Python Shell中執行的結果不一樣?...
這告訴我們一個基本的事實,叫做C中的 printf 函數,實際上傳回一個值,這個值代表了它輸出的字元的數目,注意是輸出的字元數目,而非參數的長度。是以,當你使用script來運作代碼的時候,一切當然都是正常的,這是我的結果:
python執行cmd指令行_python代碼有時候在指令行下和Python Shell中執行的結果不一樣?...
但是,當你使用interactive shell的時候,你得注意到一個基本的事實,那就是:
這個Python Shell的視窗,并不是cmd或者terminal!
實際上,shell輸出什麼,取決于他的實作,并不意味着一定會輸出代碼的結果。
你其實看到的輸出并不是stdout,而是Python向stdout中輸出的内容,因為idle中的顯示就是修改stdout來實作的。為了再次說明這個道理,我把我的 Anaconda Python 的REPL的結果截圖放在這裡,來告訴你,code的結果,在cmd裡是可以看到的。
python執行cmd指令行_python代碼有時候在指令行下和Python Shell中執行的結果不一樣?...
最後小編多說一句!小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、資料分析、資料可視化、機器學習等。想要這些資料的可以關注小編,并在背景私信小編:“01”即可領取。