開啟我們的命令列,輸入 python
,我們會進入 python
的互動模式。
當我們想退出 python
,返回我們的 shell
時,你將如何退出?
如上,兩個行之有效的方法是輸入 exit()
或者 quit()
來中止這個 python
程式。
此外,還有一種更為人所熟知的方式: 使用快捷鍵退出 。而這個操作在 Windows
和 Linux
兩個平臺是不同的——前者使用 Ctrl + z
而後者使用 Ctrl + d
。但是,為什麼不同呢?
EOF, end of file
這就不得不提起檔案結束符 EOF
(end of file
) 。
在 C 語言的 stdio.h
中, EOF
實際上就是 -1
:
#define EOF (-1)
C 語言之父肯·湯普森與丹尼斯·裡奇恰好也是 Unix
的締造者,而 Unix
深遠地影響了作業系統的發展:無論是 Windows
還是 Linux
。
當我們接收輸入的“程式”接收到 -1
這個值時,程式便會知道:哦,這不就是 EOF
老兄嗎!現在已經抵達檔案的最末尾(end of file
)了,我的接收輸入的工作也就完成了,可以下班了!
我們們來看一個簡單的 C 語言例子。
但注意,-1
並不是數值物件,而就是 -1
這個輸入值,我們無法通過鍵盤上的 -1
直接鍵入,如果想要鍵入 -1
,那麼就需要:
- 在
Windows
上鍵入Ctrl + z
- 在
Linux
上鍵入Ctrl + d
所以,你也就知道為什麼 在 Windows
下用 Ctrl+Z
退出 Python
而 Linux
下用 Ctrl+D
了吧!
一些補充
有朋友問了,Ctrl + c
也是殺死程式,為啥 Ctrl + c
不行呢?
我的理解是,在 python
的互動視窗裡, Ctrl + c
用於殺死 python
的子程式,比如你進入死迴圈了。
如果你真的想通過殺死程式的方式來退出 python
,那我這裡有一套 powershell
和 shell
的命令。
tasklist | where {$_ -match "python"}
kill <python程式PID>
ps aux | grep python
kill -9 <python程式PID>