中小企業診断士の過去問
令和3年度(2021年)
経営情報システム 問6

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

中小企業診断士試験 第1次試験 経営情報システム 令和3年度(2021年) 問6 (訂正依頼・報告はこちら)

データ分析や機械学習を容易に行うことができるプログラミング言語であるPythonの利用が拡大している。
Pythonに関する記述として、最も適切なものはどれか。
  • Python2.xで動作するプログラムは全て、Python3.xでも動作する。
  • オブジェクト指向のプログラミング言語であり、関数型プログラミングをサポートしていない。
  • クラスや関数、条件文などのコードブロックの範囲はインデントの深さによって指定する。
  • データの操作や定義を行うための問い合わせ言語である。
  • 論理プログラミング言語であり、プログラムは宣言的に表現される。

次の問題へ

正解!素晴らしいです

残念...

この過去問の解説 (3件)

01

AIなどの進展を背景に最近よく使われるようになっているPythonの問題です。Pythonはわかりやすい言語でシンプルですが、汎用性の高さが特徴です。

まず、プログラム言語は手続き型言語、関数型言語、オブジェクト指向に分かれます。

手続き型言語はコンピュータの処理を順番に記載していくプログラムです。CやFortranなどがあります。比較的理解しやすく、短い処理等を行うには扱いやすい言語ですが、一方で対応が複数にもわたるような複雑な処理では使いにくくなります。

手続き型言語の欠点を補うように出てきたのがオブジェクト指向です。手続き型言語やオブジェクト指向といったものは、プログラムのパラダイム(考え方のようなもの)と呼ばれ、およそプログラム言語はどこかのパラダイムになりますが、問題のPythonは関数型でもあり、オブジェクト型でもあるマルチパラダイム言語と呼ばれています。(よって2は誤り)

手続き型とオブジェクト指向を比較した例を挙げます。例えば犬が曲がり角では吠えて、直線では走るというプログラムがあったとします。単純にこれだけであれば、犬→曲がり角→吠える、犬→直線→走るだけですので、手続き型の方が簡単な分適しています。ただ、ここに猫、ライオンが加わり、坂道では歩くといったオプションまで加わると複雑になってしまいます。その場合は、動物名の塊、アクションの塊で分けて、状況に応じてプログラムを呼び出せれば動物名の塊×アクションの塊となってわかりやすくなります。また、それぞれの塊で開発できますので、複数人でも対応できます。これがオブジェクト指向になります。

関数型はプログラムが関数を主軸とするプログラムになります。関数型では一定の値を関数に与えると、必ず同じ値を返します。他のパラダイムでは時に別の値を返す場合があり、この点が大きく異なります。

その他の選択肢です。1はPhytonは2.Xのバージョンから抜本的に改善を加え、3.Xになっています。よって、2.Xは3.Xでは動作しない場合があることが特徴です(よって1は誤り)。

3はPhytonのプログラムの書き方の特徴になります。インデント(頭の段落の位置)でプログラムを区切るのが特徴です(3は正解)。

4はSQLなどデータベースを扱うための言語です。少しプログラム言語とは異なります。(よって4は誤り)

5の論理プログラミング言語とは、論理式を組み合わせてプログラムを作る言語になります。Pythonはオブジェクト指向、関数型のプログラム言語になります。(よって5は誤り)

参考になった数17

02

1.Python 3.0では、Python 2の頃に書かれたスクリプトの多くはそのままでは動きません。言語仕様や組み込み型、標準ライブラリにメスが入り、ドラスティックな仕様変更が行われているからです。

2.Pythonはスクリプト言語であり、コードがシンプルで扱いやすく少ないコード行数で書くことができます。汎用性が高く数値計算ライブラリが充実しています。

3.正しい。

4.Pythonはスクリプト言語であり、アプリケーション開発の補助に用いられる比較的簡素な文法体系を持っています。

5.Pythonはスクリプト言語です。

参考になった数15

03

Pythonに関する問題です。

 

PythonはAI開発に用いられているため聞いたことがある方も多いかも知れませんが、以下のような特徴があります。

・オープンソースソフトウェアである

・インタプリタ言語であり、コンパイル作業が不要である(スクリプト言語)

・Windows、Macなど主要なOSに対応しているため、どのようなPCであってもPythonを実行することができる

 

しかし、本問はPythonの特徴を知っているだけでは正答することが難しいと思われます。

選択肢1. Python2.xで動作するプログラムは全て、Python3.xでも動作する。

Python2.xで動作するプログラムは、Python3.xでは動作できません

選択肢2. オブジェクト指向のプログラミング言語であり、関数型プログラミングをサポートしていない。

オブジェクト指向のプログラミング言語であり、関数型プログラミングもサポートしています

選択肢3. クラスや関数、条件文などのコードブロックの範囲はインデントの深さによって指定する。

正解の選択肢となります。

選択肢4. データの操作や定義を行うための問い合わせ言語である。

Pythonは、スクリプト言語です。

選択肢5. 論理プログラミング言語であり、プログラムは宣言的に表現される。

Pythonは、論理プログラミング言語ではありません

参考になった数4