作者:Al Sweigart
譯者:豌豆花下貓@Python貓
英文:https://inventwithpython.com/blog/2022/10/30/17-online-python-ides-and-interactive-shellsrepls
轉載請保留作者及譯者資訊!
安裝 Python 很容易,但或許你正在用智慧手機/平板電腦,在用不允許安裝軟體的電腦,或者因為其它原因無法安裝 Python。那麼,如何通過免安裝的方式使用 Python 呢?
本文將介紹 17 個免費的 Python 直譯器和互動式 Shell(也稱為 REPL),你可以從 Web 瀏覽器中直接存取。(譯註:國記憶體取部分網站不穩定,可以多試試,或者藉助其它輔助上網的工具)
基於瀏覽器的 Python 直譯器有一些缺點:
儘管有以上缺點,但是用它們來練習編寫 Python 程式碼是足夠的。
下面就是 Python 線上服務網站的列表。這不是一篇匆忙整理的標題黨文章;我仔細檢查了每一個網站,並按照個人的喜好順序羅列出來。
注:本文不包含 Pypy、Jython、Nutika、IronPython 等知名的 Python 直譯器,因為它們都不是線上服務。想了解這些直譯器,可檢視:11 個最佳的 Python 編譯器和直譯器
我最喜歡的基於瀏覽器的 Python 檔案編輯器就是 Python Tutor(Python 導師)。Python Tutor 內建了一個偵錯程式,允許每次執行一行,並檢視程式的單步執行情況。不僅如此,它還記錄了程式在每一步的狀態,因此你也可以後退。這是大多數偵錯程式沒有的特性。
Python Tutor 網站還支援 Java 8、Javascript ES6 和 C/C++(使用 GCC 9.3 編譯器)。主要的缺點是,程式在執行時會有所限制(因為在結果返回到你的瀏覽器之前,程式是在它們的伺服器上執行的),但是在大多數的練習例子中,你不會遇到什麼問題。
https://www.pythonanywhere.com
PythonAnywhere 是最流行的基於瀏覽器的直譯器之一。你必須先註冊,是免費的。你可以儲存 Python 指令碼,或者無需登入而只使用它們的 IPython 互動式 Shell。(譯註:畢竟是 Anaconda 出品,能秒殺大部分競品)
這個服務允許你從一個虛擬硬碟中讀寫檔案,它已經安裝了許多流行的 Python 第三方模組。
它支援幾個不同的 Python 版本,另外,它還被用於 www.python.org 網站上的互動式 Shell。
Replit 需要註冊一個帳戶才能使用。使用者介面有點複雜,因為它們有好幾塊功能,包括導航網站的幫助系統。該站點還有用於 C、C++、Java、Javascript 和其他幾種語言的線上編譯器。
Replit 還有一個 APP,可以在智慧手機和平板電腦上使用。
https://brython.info/tests/console.html?lang=en
Brython 可以讓 Web 瀏覽器像執行 JavaScript 一樣執行 Python。一般在 Web 頁面上用 JavaScript 做的事情,都可以用 Brython 來做。這意味著你在執行程式時沒有記憶體或 runtime 的限制,因為它們是在你自己的計算機上執行。缺點是瀏覽器在載入網頁時,必須先下載 6 M 的 Brython 程式碼。
你可以提前下載 Brython 到電腦上,並離線執行。首先,從 GitHub 上的 Brython 釋出頁面下載最新的版本(例如目前的 Brython-3.11.0.zip)。在解壓後的目錄中,建立一個名為 console.html 的文字檔案(或任意以 .html 為字尾的名稱),並寫入以下內容:
<!doctype html>
<html>
<head>
<script type="text/javascript" src="brython.js"></script>
<script type="text/javascript" src="brython_stdlib.js"></script>
<style>
.codearea {
background-color:#000;
color:#fff;
font-family:'Oxygen Mono', Consolas, 'Liberation Mono', 'DejaVu Sans Mono', monospace;
font-size:14px;
overflow:auto
}
</style>
</head>
<body onload=brython({"debug":1}) ><!-- remove the 1 to leave debug mode -->
<noscript>Please enable Javascript to view this page correctly</noscript>
<textarea id="code" class="codearea" rows="20" cols="100"></textarea>
<script type="text/python3">
from interpreter import Interpreter
# Start an interactive interpreter in textarea with id "code"
Interpreter("code")
</script>
</body>
</html>
當在計算機上開啟這個 .html 檔案時,你將得到一個可執行的 Python 互動式 Shell。
https://colab.research.google.com
使用 Google 或 GMail 帳戶,你可以存取這個 Jupyter Notebook 風格的 REPL,它提供了大量的記憶體和 CPU 資源。
Trinket 是一個以教育為主的網站。你需要註冊一個免費的帳戶才能使用它,他們的互動式 Shell 還支援Turtle、Matplotlib 和其他模組,而許多線上 REPL 都不支援這些模組。
Python Fiddle 是一個簡單的編輯器,允許你建立和執行 Python 指令碼。它的使用者介面太過醜陋了。。。(譯註:不忍直視的頁面!網站竟然支援兩種語言,English與中文,我不經懷疑開發者的身份是……)
https://www.programiz.com/python-programming/online-compiler
Programiz 有一個簡單的檔案編輯器。它不能寫檔案,執行資源也有限。該網站還有用於 C、C++、Java、C#、Javascript 的編譯器,以及一個用於 SQL 資料庫和 HTML/CSS 的沙箱。
Ideaone 有一個豐富的編輯器,支援包括 Python 在內的多種程式語言(甚至有 Pascal、Fortran、Prolog 和 Cobol 等較老的語言,以及 Brainfuck 和 Intercal 等深奧的程式語言)。
它只有一個支援編寫和執行程式的編輯器(有 5 秒的執行時長限制),但沒有互動式 Shell。相比於用它寫 Python,如果你想練習不太流行的語言,Ideaone 會是個不錯的選擇。
一個 Jupyter Notebook 風格的 REPL,帶有一個很小的使用者介面,非常適合簡略的程式碼。它完全在瀏覽器中使用 JupyterLite 執行 JupyterLab,而不是在伺服器上執行。
https://www.onlinegdb.com/online_python_interpreter
一個不錯的編輯器,有一個很好的使用者介面,不會讓人不知所措。執行時和記憶體似乎也相當多。我推薦這個。
https://www.w3schools.com/python/python_compiler.asp
W3Schools 有一個簡單的 Python 編輯器,支援基本的語法高亮。它有大約 10 秒的執行時間限制,但是如果你的程式超出時間,它不會報錯。如果是簡單的例子,用起來很好。
https://pythonprinciples.com/online-python-interpreter
一個簡單的檔案編輯器,只能執行一些較為簡單的程式碼。
一個簡單明瞭的 Python 編輯器,只能執行一些較為簡單的程式碼。
https://www.tutorialspoint.com/execute_python_online.php
一個簡單易懂的編輯器,有較多執行資源。
https://rextester.com/l/python3_online_compiler
這像一個業餘專案,僅有極簡的編輯器,有 5 秒的執行時間限制。它有其他語言的編譯器,但網站難於瀏覽。
https://portablepython.com (不推薦)
這不是一個基於瀏覽器的 REPL,而是一個 .exe 檔案,可以在 Windows 上執行 Python,而無需安裝任何東西。然而,該網站自 2013 年(以及 Python 3.2)以來就沒有更新過,下載頁面也不使用 HTTPS。由於可能有惡意軟體,我不建議使用它。
Visual Studio Code 是一個 Electron app,這意味著它可以作為一個普通的桌面應用程式,也可以基於瀏覽器來執行。瀏覽器版本有點受限,相比於其它線上直譯器,使用這個線上 IDE 需要更陡的學習曲線。
不過,如果你願意深入瞭解它,或者已經使用過 Visual Studio Code,那麼可以試試這個基於瀏覽器的版本。
注:文中圖片為譯者所加。
首發於 Python貓 ,如需轉載,請聯絡作者
知乎:Python貓
部落格園:豌豆花下貓
掘金:豌豆花下貓
CSDN:Python貓