Python入門:変数

コンピュータは「0」と「1」だけからなる機械言語を使って動いています。人がコンピュータと会話するためには、人間と機械両方が分かる「プログラミング言語」が必要です。

コンピュータが発明されてから、多くのプログラミング言語が作られています。Python言語のほかに、有名なものでは、Fortran言語、C言語、Java言語、JavaScript言語などがあります。

本日は、以下のPython言語の基礎概念を解説します。

(教科書「Python超入門」のChapter 1,3を参照してください。)

補足

CESに限らず、Windows、MacOS、Linuxの中でPythonのコードを実行することも可能です。教科書の4-5ページを参考にしてください。34-39ページにもコードの実行方法の説明があります。

1. Python言語の変数

プログラミングの変数は、プログラムで利用するデータを一時的に保存する入れ物のようなものです。

「x=5」というプログラムでは、「=」の右辺の値5を左辺の変数「x」に代入します。「=」は「代入演算子」と呼ばれています。

以下の例で、変数x, yに他の値を代入してみましょう。変数の値を確認するために、「print()」という関数を使って値を出力することができます。

1.1 変数の役割

コンピュータのプログラミングでは、機械的な考え方が必要です。必ず「値をどの変数に格納するか」を意識してください。

例:変数の値の入れ替え

以下では、二つの変数の値の入れ替えの例によって、変数の役割を体験してみます。

下記のコードでは、変数x, yはそれぞれ値を持っています。二つの変数の値の入れ替えを行います。

以下の失敗の例を実行してみて、値の入れ替えが正しくできていない理由を考えてください。

変数の値が無くならないように、第3変数を用意することが必要です。以下は値の入れ替えの成功の例です。

補足

a) 変数に関わる用語
変数に関する処理には一般的に「プログラミング用語」が使用されます。以下の用語を覚えてほしいです。 - 変数を作成して、(初めて)値を代入することを**初期化**と言う。 - 変数を作成すること -> 変数を「**宣言**」する。変数を「**定義**」する。 - 値を変数に入れること ->変数に値を「**代入する**」「**格納する**」。変数が値を「**保持する**」。
b) 変数名のルール
変数の名前付けには、以下のルールがあります。 - 大文字・小文字のアルファベットと数字、"_"(アンダーバー)を組み合わせる。 - 数字から始まらないこと。 - Python言語の文法で既に使用している単語(「予約語」)でないこと。例えば「if」。

演習1

変数a, b, c, dはそれぞれ値を持っています。変数の値を以下のように入れ替えてください。

$$ \left(\begin{array}{c} a \rightarrow b \\ b \rightarrow c\\ c \rightarrow d\\ d \rightarrow a\end{array} \right) $$

例えば、最初に$a=1,b=2,c=3,d=4$の場合、入れ替え後には$b=1,c=2,d=3,a=4$となります。

1.2 変数の「型」

Python言語では、数字を扱うことができます。数字の中にも「整数(int)」「浮動点小数(float)」の区別があります。

数字以外に、「文字列(str)」「リスト(list)」などの変数の型があります。「type()」を使えば、変数の型を調べることができます。

変数の型によって、同じ演算子でも演算の意味は変わります。

以下の二つの例では、「+」という演算子は異なる意味を持っています。 最初の例では、「+」は「足し算」を意味しています。2番目の例では、「+」は「文字列の結合」を意味しています。

キャストを使った型の変換

文字列と数値を結合する場合、同じ型にしないといけません。以下のコードでは、course_name と score は異なる型であるため、実行するとエラーとなります。

「str()」という関数を使ってscoreを文字列に変換すれば、問題が解消します。

代わりに、"100"のような文字列を数字に変換することも可能です。

補足

以下の例では、a, bはそれぞれ整数ですが、割り算のときにa, bが一度小数(float)に変換されて値が計算されています。

1.3 リストの使用

リスト(list)はデータの並びを扱うための型です。以下の例では、リストの初期化ができます。

リストに値を追加するためには、appendという関数を使います。

リストの各要素はインデックス番号によってアクセスできます。特に、リスト内の要素は0から数え始めます。

リストの各要素に順番にアクセスするために、for文を使うことができます。

rangeの使用

連続した数字の並びを作成するために、range関数が便利です。

rangeの使用例

以下のコードの表示結果を確認してください。

演習2

forループによって、以下のような結果を出力してください。

The score of taro is 100.
The score of jiro is 90.
The score of saburo is 80.
The score of shirou is 70.

演習3

range()を使って、以下のような数列のリストを作成してください。

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

レポートの提出について

本授業の演習1、2、3を解き、新しいNotebookに演習の内容と解答を書いて、提出してください。