小さなプログラムを実行する
main.pyにコードを書き、「Pythonを実行」を押します。薄いサンプルはあいさつと0〜4の2乗を出力します。初回はエンジンのダウンロードにネット接続が必要です。同じページ内の次回以降は取得済みのデータを再利用します。 コード欄が空なら、実行・.py保存にはこの例を使います。クリアするとコード、標準入力、出力がリセットされます。
別の例としてimport statisticsの次の行にprint(statistics.mean([3, 6, 9]))を書くと6になります。最後の行の式が返す値も表示します。通常出力とエラー出力を区別し、例外時はトレースバックで場所を確認できます。
標準入力を先に用意する
name = input('Name: ')を使う場合は、標準入力の1行目に名前を書きます。コードにprint('Hello,', name)を追加して実行してください。input()は1行ずつ消費し、不足するとダイアログを開かずEOFErrorになります。
Tabは空白4文字、CtrlまたはCommandとEnterは実行です。「.pyを保存」で現在のコードを保存できます。出力のコピーには取得したエラー文も含まれます。
キーワード、文字列、数値、コメントを基本的な色分けで表示します。Enterは現在の字下げを維持し、コロンで終わるforやifなどのブロック後に空白4つを追加します。Shift + Enterは改行のみです。.pyを開くとUTF-8ファイルをローカルで読み込み、入力済みコードの置換前に確認します。無効なファイルや上限を超えるファイルでも現在のコードは保持されます。
停止して実行し直す
停止ボタンはwhile Trueのようなループもワーカーごと終了します。次回は新規セッションです。エンジン起動後の実行上限は15秒、出力上限は65,536文字。コードや入力を編集すると実行を中断して古い結果を消します。
変数、import、ファイルは次回に引き継ぎません。必要な処理をすべてコードに含めてください。大量のメモリー確保は時間制限前でも端末を圧迫するため、特にスマートフォンでは小さな例で利用してください。
対応範囲とプライバシー
Pyodide 0.28.3に同梱された標準ライブラリーを使用します。math、random、statistics、jsonなどに対応し、NumPyや任意のpipパッケージは読み込みません。デスクトップ画面、OSプロセス、TCPソケット、対話型グラフは対象外です。
コードは不透明オリジンと制限ポリシーを設定した隔離環境内のワーカーで実行します。コードからの外部リクエストを遮断します。親ページはエンジンだけをjsDelivrから取得し、ソースや標準入力を添付しません。アカウントやコード実行APIは不要です。
Pyodide 0.28.3 · GitHub · MPL-2.0
よくある質問
初回の実行が遅い理由は?
PythonとWebAssemblyの取得・初期化が必要です。失敗した場合は再度実行してください。
パッケージをインストールできますか?
できません。同梱の標準ライブラリーのみを使用します。
変数が消えました。
毎回新規セッションで実行します。変数の代入もコードに含めてください。
オフラインやスマホでも使えますか?
初回取得にはネットが必要です。画面は狭い幅にも対応しますが、メモリーやWebAssembly対応は端末によります。