擬似言語はPythonにそっくり?対応表で見ると一気に読めるようになる話
擬似言語の勉強中に、ふと思ったことはありませんか?
「これ、本物のプログラミング言語と何が違うんだろう」と。
Pythonを少しかじったことがある人なら、なんか見たことある形だな、と感じたかもしれません。
その直感、正しいです。
擬似言語は、実在するプログラミング言語の共通部分を抜き出したものです。だから、Pythonと並べて見ると、対応関係がきれいに見えてきます。
暗号のように見えたコードも、対応表を見ると、急に意味のある文章に変わります。
この記事では、擬似言語とPythonの対応表を使って、両方の理解を深める方法を紹介します。
Pythonを知らない方でも大丈夫です。1つずつ対応させながら見ていきます。
擬似言語とPython、そもそもの関係¶
最初に、2つの関係を整理しておきましょう。
擬似言語は、基本情報技術者試験の科目Bなどで使われる、試験専用の表記法です。実際のコンピュータで動かすための言語ではありません。
一方のPythonは、実務で広く使われている本物のプログラミング言語です。Webアプリ、データ分析、AI、業務自動化などで使われています。
| 観点 | 擬似言語 | Python |
|---|---|---|
| 目的 | アルゴリズムの理解度を測る | 実際にプログラムを動かす |
| 動く場所 | 紙の上、頭の中 | コンピュータ上 |
| 表記 | 日本語混じりの独自記法 | 英語ベースの構文 |
| 学ぶ意味 | 試験合格+論理の基礎 | 実務・開発スキル |
こう見ると、別物に見えるかもしれません。
でも、中身の考え方は共通しています。
変数に値を入れる。条件によって処理を分ける。同じ処理を繰り返す。必要な処理を関数にまとめる。
このような部品は、擬似言語でもPythonでも同じです。
つまり、違うのは見た目であって、考え方の土台はほとんど同じなのです。
保存版:擬似言語とPythonの対応表¶
それでは、本題の対応表です。
科目Bで頻出の構文を、Pythonと並べてみました。
| やりたいこと | 擬似言語 | Python |
|---|---|---|
| 変数への代入 | x ← 5 | x = 5 |
| 条件分岐 | if (x > 0) 〜 endif | if x > 0: |
| そうでなければ | else | else: |
| 別の条件なら | elseif | elif |
| 決まった回数の繰り返し | for (i を 1 から 5 まで) 〜 endfor | for i in range(1, 6): |
| 条件を満たす間繰り返す | while (x < 10) 〜 endwhile | while x < 10: |
| 関数の定義 | ○整数型: add(整数型: a, 整数型: b) | def add(a, b): |
| 値を返す | return a + b | return a + b |
| 等しい | = | == |
| 等しくない | ≠ | != |
| かつ | and | and |
| または | or | or |
どうでしょう。
ほとんど一対一で対応していることが、見て取れると思います。
もちろん、記号や書き方は違います。擬似言語では「←」を使いますし、Pythonでは「=」を使います。擬似言語では「endfor」のように終わりを明示しますが、Pythonではインデント、つまり字下げで範囲を表します。
でも、やりたいことは同じです。
変数に入れる。条件で分ける。繰り返す。関数でまとめる。
この対応関係が頭に入ると、擬似言語は、日本語で書かれたプログラミング言語として自然に読めるようになります。
同じ処理を並べて書いてみる¶
対応表だけでは、まだ実感が湧きにくいかもしれません。
そこで、実際のコードを並べて見てみましょう。
1から10までの合計を求める処理です。
まず擬似言語で書くと、こうなります。
整数型: total, i
total ← 0
for (i を 1 から 10 まで 1 ずつ増やす)
total ← total + i
endfor
同じ処理をPythonで書くと、こうです。
total = 0
for i in range(1, 11):
total = total + i
行の対応が、きれいに見えますよね。
最初にtotalを0にする。iを1から10まで増やす。毎回、totalにiを足す。
処理の流れは、まったく同じです。
違うのは、見た目だけです。
擬似言語の「←」がPythonでは「=」になり、擬似言語の「endfor」がPythonではインデントに変わっています。
ここで大事なのは、コードを文字として追いかけすぎないことです。
「この1行は何をしているのか」 「この繰り返しは何回まわるのか」 「変数の中身はどう変わるのか」
このように、処理の意味を追いかけていきます。
すると、擬似言語もPythonも、同じ物語を別の表記で書いているだけだとわかってきます。
初心者が押さえたい読み方のコツ¶
擬似言語を読むときは、最初から完璧に理解しようとしなくて大丈夫です。
まずは、変数を「値を入れておく箱」と考えます。
x ← 5
これは、xという箱に5を入れる、という意味です。Pythonではx = 5と書きます。
ただし、次のようなコードは少し注意が必要です。
total ← total + i
一瞬、変な式に見えませんか。
これは、totalとtotal+iが同じ、という意味ではありません。
今のtotalにiを足して、その結果をもう一度totalに入れる、という意味です。
合計を求める処理でよく出てくる、とても大事な形です。
次に、if文は「道を選ぶ処理」と考えます。
if (score ≧ 60)
result ← "合格"
else
result ← "不合格"
endif
条件を確認する。条件に合えば上の道へ進む。合わなければelseの道へ進む。
if文で迷ったときは、「この条件は成り立つ?」「成り立つならどこへ進む?」「成り立たないならどこへ進む?」と順番に確認しましょう。
そして、繰り返しは「同じ作業を自動で回す処理」です。
for (i を 1 から 5 まで 1 ずつ増やす)
i を出力する
endfor
Pythonでは、こう書けます。
for i in range(1, 6):
print(i)
ここで初心者がつまずきやすいのが、Pythonのrange(1, 6)です。
1から6までではありません。1から5までです。
Pythonのrangeは、最後の値を含みません。だから、5まで回したいときは、6を指定します。
この違いを知っておくだけで、事故を防げます。
注意すべき違いは3つだけ押さえる¶
似ているからこそ、細かい違いには注意が必要です。
試験で事故につながりやすい違いを、3つだけ挙げておきます。
1つ目は、等号の意味です。
擬似言語の「=」は、等しいかどうかを比べる記号として使われます。一方、Pythonの「=」は代入です。Pythonで等しいかどうかを比べるときは「==」を使います。
2つ目は、配列の始まりの番号です。
擬似言語の問題では、配列の添字が1から始まることがあります。一方、Pythonのリストは0から始まります。
3つ目は、範囲の終わりです。
Pythonのrange(1, 11)は、1から10までを意味します。終端を含むかどうかの感覚が、擬似言語のforと少し違います。
この3つさえ意識しておけば、対応表は安全に使えます。
最初から全部を完璧に覚える必要はありません。まずは大きな対応関係をつかめば大丈夫です。
なぜ対応表を見ると、急に読めるようになるのか¶
ここで、学習のメカニズムの話を少しだけ。
人間の脳は、まったく新しいものをゼロから覚えるのが得意ではありません。
でも、すでに知っているものとの対応づけは得意です。
英単語を覚えるとき、日本語との対応で覚えますよね。地図を見るときも、現在地と目的地を対応させて考えますよね。
擬似言語とPythonの対応表も、これと同じです。
Pythonを少しでも触ったことがある人は、その記憶を擬似言語の足場にできます。
逆に、Pythonをまったく知らない人でも、擬似言語で学んだ考え方を、あとからPython学習の足場にできます。
どちらから始めても、もう片方が安くなる。
試験のためだけの勉強だと思うと、少し辛く感じるかもしれません。でも、Python習得の前払いだと思えば、少し景色が変わりませんか。
私が擬似言語を、いい教材、だと思う理由¶
私の経験から、現場目線の話をひとつ。
実務では、Pythonの他にもJavaScript、Java、Goなど、プロジェクトごとに違う言語を使います。
では、言語が変わるたびにゼロから学び直しているのかというと、そんなことはありません。
なぜなら、どの言語も、変数、分岐、繰り返し、関数という同じ骨格でできているからです。
条件によって道を分ける。繰り返しで同じ処理を回す。関数で処理をまとめる。配列やリストで複数の値を扱う。
この骨格さえ掴んでいれば、新しい言語の習得は、方言を覚える感覚に近くなります。
そして擬似言語は、まさにこの骨格だけを取り出した表記法です。
つまり、擬似言語をしっかり学んだ人は、特定の言語に依存しない、プログラミングの土台そのものを手に入れています。
試験対策の擬似言語学習は、遠回りどころか、全言語対応の基礎工事なのです。
対応表の効果を最大化する使い方¶
対応表は、眺めるだけではもったいない教材です。
おすすめの使い方は、翻訳練習です。
擬似言語のコードを見て、Pythonならどう書くかを考える。逆に、Pythonのコードを擬似言語に訳してみる。
この往復運動をすると、構文の丸暗記ではなく、処理の意味そのものを掴む読み方が身につきます。
たとえば、次のような擬似言語を見たとします。
if (x = 0)
y ← 1
else
y ← 2
endif
これをPythonに訳すと、こうなります。
if x == 0:
y = 1
else:
y = 2
ここで大事なのは、記号を置き換えるだけではありません。
「xが0ならyに1を入れる。そうでなければyに2を入れる」
このように、日本語で処理を説明できることです。
この練習を繰り返すと、問題文を読んだときの反応速度が上がっていきます。
翻訳した結果は、できれば動かして確かめてください。
Giji Academyでは、擬似言語をブラウザ上で動かして結果を確認できます。翻訳練習との相性は抜群です。
記号の読み方に不安が残っている方は、先にこちらで基礎を固めておくとスムーズです。
【関連記事】擬似言語の記号一覧と読み方まとめ|基本情報の科目Bでつまずかないために
よくある質問:先にPythonを勉強すべき?¶
この記事を読んで、じゃあ先にPythonをやった方がいいのでは、と思った人もいるでしょう。
答えは、試験合格が目的なら、擬似言語からで大丈夫です。
Pythonを学ぶには、環境構築やエラーとの格闘など、試験には不要な学習コストがかかります。
ただ、試験日が決まっているなら、まずは擬似言語に直行する方が効率的です。
科目Bで問われるのは、Pythonの書き方を知っているかではありません。アルゴリズムを読めるか。変数の変化を追えるか。条件分岐や繰り返しの流れを理解できるか。
ここが本質です。
一方、試験後もプログラミングを続けたい人は、合格後にPythonへ進むのが黄金ルートです。
なぜ試験が擬似言語を使うのか、気になった方はこちらの記事もどうぞ。
【関連記事】なぜIT試験では擬似言語が使われるのか?その理由と学ぶメリットを解説
まとめ:対応表は、試験と実務をつなぐ架け橋¶
擬似言語とPythonは、表記こそ違います。
でも、変数、分岐、繰り返し、関数という骨格を共有しています。
対応表で並べて見れば、擬似言語は日本語で書かれたプログラミング言語として読めるようになります。
注意すべき違いは、等号の意味、添字の始まり、範囲の終わりの3つです。
そして、擬似言語の学習は試験のためだけのものではありません。あらゆる言語に通じる骨格の基礎工事であり、合格後のPython学習の前払いです。
対応表を片手に、翻訳練習と動かして確かめる練習を始めてみてください。
最初は、1行読むだけでも時間がかかるかもしれません。でも、それで大丈夫です。
点だった知識が線になり、線が流れになった瞬間、擬似言語は怖いものではなくなります。
読めるようになる瞬間は、思っているよりずっと近くにあります。
ここまでお読みいただきありがとうございました。