プログラムの変数名に日本語は使えるか? Scratchでは? Python3では?

プログラミング

プログラミングでは変数というデータを入れる箱のようなものを作り、そこにデータを入れて使用します。
この変数名として日本語を使うことはできるでしょうか?

結論として、変数名には普通はアルファベットと数字を使いますが、日本語を使える言語も存在します。ただし、変数名に日本語を使うことは、あまりお勧めはしていません。

例えば、子供向けのビジュアル言語Scratchでは変数名として日本語を使用することができます。
そのため児童を見ていると、ほとんどの場合、変数名に日本語の漢字やひらがなを使っています。
ただし、将来を見据えて、出来るだけ意味の分かるアルファベットを使うように指導しています。英単語がわからない場合はローマ字で。

さらに、Scratchの場合は、日本語ばかりか数字を変数名に使うこともできるので、例えば「1」という変数を作り、そこに「2」を代入することも出来てしまいます。わざとやる児童もよくいます。
しかし、これでは数字の1なのか、1という変数で中味は異なる数なのか、混乱を招くばかりです。見て、わかりやすいことは重要です。

Python3ではどうでしょうか?
Python3ではUnicodeを変数名に使うことが出来ます。すなわち日本語の変数名にすることが出来ます。
従って以下のようなコードはエラーなく実行出来ます。

数字1 = 3
数字2 = 5
足し算 = 数字1 + 数字2
print(足し算)

 

ある意味、素晴らしい。わかりやすいかもしれません。しかしながら、このコードは海外の人が見た時に意味がわかりません。グローバルな人材になろうとする児童、生徒には最初から英語で書いてもらいたいものです。
また、このコードを別のところに移植しようとしたときに日本語が文字化けする可能性も高くなります。残念ながら今のプログラミング環境は日本語と相性がよくありません。例えば、パス名に日本語が含まれていると、うまく動かないこともあります。
さらに、実際にこのコードを書いてみると気付きますが、キーボードの全角と半角の切り替えがまどろっこしい。ちょっと間違えるとバグの温床ともなりかねないでしょう。半角スペースを入れるべきところをうっかり全角スペースにしてしまうとエラーになります。
ここはやっぱり、次のように書いてもらいたいものです。

 

number1 = 3
number2 = 5
sum = number1 +number2
print(sum)