基本情報ではじめる Python (1) 基本構文 ~ 擬似言語と比べて覚える
error
この記事は基本情報技術者試験の旧制度( 2022 年以前)の記事です。
この記事の題材となっている「午後問題」は現在の試験制度では出題されません。 ご注意くださいませ。
この連載では、プログラミングの入門者を対象として、基本情報技術者試験の出題範囲にテーマを絞って、 Python の言語構文とプログラムの読み方を説明します。
第 1 回となる今回は、基本情報技術者試験の擬似言語と比べながら、 Python の基本構文を説明します。両者には、よく似ている部分もあれば、まったく異なる部分もあります。
もくじ
擬似言語と Python の記述形式の比較
基本情報技術者試験を受験されるなら、すでに擬似言語をご存知でしょう。擬似言語は、午後試験の必須問題の「データ構造及びアルゴリズム」で使われるので、必ず覚えなければならないからです。
それなら 「擬似言語と比べることで、 Python の基本構文を効率的に覚えちゃおう!」というのが、今回の記事の趣旨です。
はじめに、試験問題に添付された「共通に使用される擬似言語の記述形式」という資料に対応させて、 Python の記述形式を示しますので、概要をつかんでください。あとで、注意すべきポイントをいくつか説明します。
code共通に使用される擬似言語の記述形式(上段)と Python の記述形式(下段)
記述形式 | 説明 |
---|---|
手続、変数などの名前、型などを宣言する。 | |
関数を宣言する。 Python の変数は、型を宣言せずに使う。 | |
文に注釈を記述する。 | |
文に注釈を記述する。 |
記述形式 | 説明 |
---|---|
変数に式の値を代入する。 | |
変数に式の識別情報を代入する。 | |
手続を呼び出し、引数を受け渡す。 | |
関数を呼び出し、引数を受け渡す。 | |
単岐選択処理を示す。 条件式が真のときは処理を実行する。 | |
単岐選択処理を示す。 条件式が真のときは処理を実行する。 | |
双岐選択処理を示す。 条件式が真のときは処理 1 を実行し、偽のときは処理 2 を実行する。 | |
双岐選択処理を示す。 条件式が真のときは処理 1 を実行し、偽のときは処理 2 を実行する。 | |
前判定繰り返し処理を示す。 条件式が真の間、処理を繰り返し実行する。 | |
前判定繰り返し処理を示す。 条件式が真の間、処理を繰り返し実行する。 | |
後判定繰り返し処理を示す。 処理を実行し、条件式が真の間、処理を繰り返し実行する。 | |
codePython
※ なし |
※ Python には、後判定繰り返し処理がない。 |
繰り返し処理を示す。 開始時点で変数に初期値(式で与えられる)が格納され、条件式が真の間、処理を繰り返す。また、繰り返すごとに、変数に増分(式で与えられる)を加える。 | |
繰り返し処理を示す。 繰り返しにおいて、 range 関数で生成された範囲の整数値が、順番に変数に代入される。 |
演算の種類 | 演算子 | 優先順位 |
---|---|---|
単項演算 | 高 ▲ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ▼ 低 |
|
乗除演算 | ||
加減演算 | ||
関係演算 | ||
論理積 | ||
論理和 |
Python では変数を宣言しないで使う
それでは、注意すべきポイントを説明しましょう。
擬似言語では、変数を宣言してから使いますが、 Python では、変数を宣言せずに使います。 Python の変数には、任意のデータ型のデータを代入できます。以下に例を示します。
Python では、変数に、データの値ではなく、データの識別情報が代入されるようになっています。この識別情報は、データのデータ型に関わらず同じ形式なので、 Python では、データ型を指定した変数の宣言が不要なのです。
もしも、 Python で、データ型を指定した変数の宣言をするとしたら、どの変数も識別情報型ということになります。ただし、この仕組みは内部的なものなので、変数にデータの値が入っていると考えても、ほとんどの場面で問題ありません。
Python のデータ型と変数
プログラムで取り扱うデータの種類のことを データ型 と呼びます。
擬似言語にも Python にも、データ型の種類として、
- 整数型(小数点以下がない数値)
- 実数型(小数点以下がある数値)
- 文字列型(文字の並び)
- 論理型(真と偽を表す)
などがあります。
たとえば、
123 は整数型のデータであり、
4.56 は実数型のデータであり、
“hello” は文字列型のデータであり、
True と False は論理型のデータです。
プログラミング言語の変数には、メモリ上にあるデータの情報を代入します。このとき、プログラミング言語の種類によって、データの値を代入するものと、データの識別情報(どのデータであるかを示す情報)を代入するものがあります。
Java などデータ型を指定して変数を宣言するプログラミング言語では、不適切なデータ型のデータを変数に代入すると、エラーになります。
これは、プログラミング言語の変換プログラム(コンパイラやインタプリタ)が、代入処理において、データ型のチェックをしているからです。エラーのまま処理を続けると、当然ですが、目的の処理結果が得らえません。例えば、整数型の計算をするところで、誤って文字列型のデータが代入されると計算ができず、エラーが発生します。
Python には後判定繰り返し処理がない
擬似言語には、処理を行ってから繰り返しの条件をチェックする後判定繰り返し処理がありますが、 Python には、ありません。
Python で後判定繰り返し処理を記述する場合は、条件を True とした前判定繰り返し処理の中で、もしも条件式に一致しないなら繰り返しを終了するようにします。
以下は、擬似言語の後判定処理と同様の機能を、 Python の前判定繰り返し処理で実現した例です。 Python の break は、繰り返しを終了する命令です。
Pythonのrange関数は任意の範囲の整数列を生成する
擬似言語の
■ 変数: 初期値, 条件式, 増分
という形式の繰り返し処理は、 Python で記述すると、
for 変数 in range(初期値, 終了値, 増分):
になります。
range 関数は、初期値から、終了値未満まで、増分ずつ変化する整数を、 1 つずつ返します。
たとえば、変数 i の値を 0 から 9 まで( 10 未満まで)変化させて繰り返し処理を行う場合は、以下のように記述します。
range 関数では、初期値のデフォルト値は 0 で、増分のデフォルト値は 1 です。
したがって、
range(0, 10, 1)
の部分を、初期値と増分を省略して
range(10)
と記述することもできます。
Python には除算の演算子が 3 種類ある
擬似言語と Python の演算子は、ほとんど同様ですが、除算に注意してください。
Python には、除算の演算子が 3 種類あります。
/
は、実数の除算結果を返します。//
は、整数の除算結果(除算の商)を返します。%
は、擬似言語と同様に、除算の余りを返します。
Python には複合代入演算子がある
Python には、擬似言語にはない、 複合代入演算子 というものがあります。
これは、変数に演算を行って、その結果を同じ変数に代入する処理を、効率的に記述するための構文です。たとえば、以下は、擬似言語で、変数 a の値に 1 を加えて、その結果を同じ変数 a に代入する処理です。代入の左辺と右辺で、変数 a が 2 回記述されています。
同じ処理を、 Python では、以下のように記述できます。
+=
の部分が複合代入演算子です。
変数 a の記述が 1 回だけなので、擬似言語より効率的です。
+ だけでなく、
変数 = 変数 演算子 値
という処理は、
変数 演算子= 値
と記述できます。 演算子=
の部分が複合代入演算子です。
シンプルな関数の定義の例
最後に、シンプルな関数の定義を例にして、擬似言語と Python の記述形式を比べてみましょう。
以下は、引数 a と b の平均値を戻り値として返す average 関数を、擬似言語と Python で記述したものです。
両者の大きな違いは、
- 擬似言語では、関数の戻り値、引数、ローカル変数にデータ型を指定
- Python では、データ型を指定していない
ことです。これは、 Python の変数には、任意のデータ型のデータを代入できるからです。 return
という命令で戻り値を返すのは、擬似言語と Python で同様です。
いかがでしたか。基本情報技術者試験の擬似言語と比べることで、効率的に Python の基本構文を覚えられたでしょう。
この連載では、今後も、基本情報技術者試験を Python で受けるための知識を取り上げて行きます。
それでは、またお会いしましょう!
label 関連タグ
免除試験を受けた 74.9% の方が、 科目A免除資格を得ています。
※独習ゼミは、受験ナビ運営のSEプラスによる試験対策eラーニングです。
基本情報ではじめる Python 最終回 試験問題レベルにチャレンジ
update基本情報ではじめる Python (9) import 文とライブラリの活用
update基本情報ではじめる Python (8) 組み込み関数
update基本情報ではじめる Python (7) generator と yield 文
update基本情報ではじめる Python (6) ラムダ式 って何? どんな用途で使うの?
update基本情報ではじめる Python (5) オブジェクト指向
update基本情報ではじめる Python (4) if ~ else と while / for
update基本情報ではじめる Python (3) 引数 ~ Python の関数の引数には様々な形式がある
update基本情報ではじめる Python (2) 配列 ~ リスト、タプル、文字列、集合、辞書の特徴
update基本情報ではじめる Python (1) 基本構文 ~ 擬似言語と比べて覚える
update『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数