5
1

More than 1 year has passed since last update.

エラーが日本語表示される Python オンライン実行環境

Last updated at Posted at 2022-08-18

要約

制作理由

先日、Python のエラーメッセージを日本語化する etupem というものを作ったのですが、これに対して以下のような Tweet がありました。

ごもっとも。

言い訳をさせていただくと、「導入」と「利用」は別の人が行うことを想定していました。そもそもプログラミング初学者にとって最初の壁となるのが「環境構築」であり、そこで躓く人を作らないために最も確実な方法は『環境構築は別の詳しい人が事前にやっておく』ことです。1 そうした状況において、Python 等をインストールするついでに etupem もインストールしておく…という使い方を想定していたわけです。

ところで環境構築をもっとも簡単に行う方法といえば、例えば Paiza.io のようなオンライン実行環境を用いることでしょう。ですが こうしたオンライン実行環境の場合、ローカル環境と異なりカスタマイズがほとんど行えない場合が多いので、etupem をインストールすることはできません。

そんなわけで、「エラーが日本語表示される Python オンライン実行環境」が無ければ作ってしまおうと思ったのでした。

工夫した点

input を使うとダイアログで入力が求められる

上で挙げた Paiza.io などもそうですが オンライン実行環境の多くは、あらかじめプログラム実行前に入力用の欄に入力内容を書いておき、input 等を用いると そこに書かれたテキストが入力される…という動作になっています。

個人的に この動作はあまり好きではありません。だってせっかく入力を求めるプログラムを書いたのであれば、実行時に「入力」をできてほしいんですよ。あらかじめ「プログラム」と「入力」を書いてから実行するのであれば、入力処理を無くして全部プログラムに書いても同じじゃないですか。2

そんなわけで、input による入力はダイアログを用いて実行時に入力するようにしました。→ input を使った例

matplotlib を利用可能

Pyodide を用いてブラウザ上で Python を動かせるようにしよう、ということ自体は多くの人がやっています。例えば日本でも少し調べると、岩手県立大学による Python実行サーバを必要としないオンラインプログラミング環境の開発 という記事が見つかります。(ところでその成果物はどこにあるんでしょう…見つかりませんでした。)

上の記事のものは、matplotlib を利用できることを 1 つの売りにしているようです。matplotlib が利用できると、文科省の 高等学校情報科「情報Ⅰ」教員研修用教材 にあるスクリプトの多く3 を動作させられるようになるためです。

というわけで、対抗意識を燃やして こちらも matplotlib を利用できるようにしました。ただし初期化に非常に時間がかかってしまうため、通常バージョンとは別に拡張バージョンとして作ってあります。以下、上述の文科省教員研修用教材のスクリプト実行用リンクを貼っておきます。

今後やりたいこと

スクリプト中のエラー箇所を表示

追記:この機能は対応しました。

言語は違いますが、C++入門者向けコード実行エディタ Simple C++ Editor も同様にエラーの日本語表示機能を持っています。

ですが Simple C++ Editor はそれだけではなく、行番号だけじゃなくて、ソースコード上にもコンパイルエラー表示 することができます。

こうした機能があると より初学者がエラー箇所を理解しやすいだろうなぁと思うので、入れられれば入れたいところです。

turtle 等の移植

タートルグラフィックスに限らず、視覚的にインパクトがあるもののほうがプログラミング学習者に興味を持ってもらいやすいでしょう。

ですので turtle とか PyGame とかが移植できたらいいなぁと思っていますが、だいぶ重たそうなので手が出ません。

  1. 「環境構築くらい自分でできるようになるべきではないか」と思われる方も居ると思いますが、ここではプログラミングスクールのような「プログラマーになる」という意思を持った人が集まる場ではなく、例えば高校の授業のように多種多様な目標を持った人にプログラミングを教えるような場をイメージしています。そうした場においては、環境構築などの面倒な部分はできるだけ肩代わりして、プログラミングの面白さを伝えていくことが重要だと思います。

  2. 競技プログラミング等の用途に使うのであれば、あらかじめ「入力」を書いておく方式の方がメリットが有るとは思います。ですがここで想定しているのは初学者の学習用途であり、そうした用途であればインタラクティブ性がある方が良いでしょう。

  3. さすがに Micro:bit と連携するスクリプトや、Web API を利用するスクリプトは動かせません。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1