高校向けPython入門(3) 変数と関数
高校向けPython入門(1) インストールと書法
高校向けPython入門(2) プログラムの書き方
3.1 変数とその計算
変数の考え方は,数学で 「y = 2x +1 のとき,変数 x に 3 を代入すると・・・」というのと同様である。変数には,いろいろな値を代入できる。
プログラムの中で使う変数には「型」がある。型は,整数か,実数か,文字列かといったもので,これをあらかじめ宣言しておく言語が多いが,Python では宣言は不要である。
変数へ値を代入し,計算結果を表示する
変数に値を代入するには,数学と同様 a = 2 のようにする。ここで,数学と異なるのは, = は右辺のものを左辺に代入する演算子 ということだ。「左辺と右辺が等しい」ということ ではない。プログラミングを学ぶとき,最初につまずきやすいことだが,プログラミングで「等しい」は等号を2つ使って a == 2 と書くことが多い。VBA(Excel でマクロを書く言語) では,= も「等しい」になるので注意。
Python での四則計算などは次のようにする。
和 : + 差: - 積: * 商: / 累乗:**
次のプログラムを打ち込んで動かしてみよう。# 以降は説明文なので入力しなくてよい。
a = 4 # a に 2 を代入する。= の前後に半角スペースを1つ入れる
b = 2
c = a + b
print("a+b=", c) # ここの a+b は表示するものなので半角スペースはいらない
c = a * b # 3行目と同じ変数を使ってかまわない。値が変わる。
print("ab=", c) # 3行目と4行目を選んで,Ctrl+C,Ctrl+Vでコピーできる
c = a / b
print("a/b=", c)
c = a ** 2
print("aの2乗は ", c)
※ 数学では積の×は省略して ab とするが,プログラミングでは * を省略できない。
実行結果を見ると,割算の結果が 2.0 になっている。Python では,整数を整数で割った商が整数になる場合でも,これを実数とする。整数と実数ではデータ型が異なるので,これが原因となって思わぬエラーが出ることがある。そこで,商を整数として得たいときは,演算子// を使う。
また,余りを求めるときは % を使う。次を追加して実行してみよう。
c = a // b
print("a//b=", c)
b = 3
print("4を3で割った余りは", a % b)
変数に文字列を代入するときは,ダブルクォーテーションかシングルクォーテーションでくくる。文字列と実数の計算はできないが,文字列どうしは,+演算で結合することができ る。クォーテーションが異なっていてもよい。
== コラム ===
大文字と小文字の使い分け
変数の名前をどうつけるか。簡単な練習の場合は a だけでもよいが,少し長くなったら,意味のある言葉にしたい。あとでプログラムを読むときの可読性(読みやすさ)がまったく違うのだ。言葉にすると長い場合は短く略すこともある。言葉は英語にするとよいが,大学入試共通テストでは日本語をローマ字にしている。たとえば,Siten(始点) といった具合だ。これを,Start-point では長いし,Sp ではわからない。
この,Siten だが,変数の場合は siten とすべて小文字にすることが多い。この点が定点で,変化しない値の場合は Siten とする。すなわち,変数はすべて小文字,定数は先頭だけ大文字,とするのだ。
変数名として使えないものに,数字から始まるものと予約語がある。予約語は,for や while といった構文を表すものや,既に使われている組み込み関数の名前だ。これらを使うとエラーになる。Jupyter Notebook の場合は,これらの言葉は色分けされるのでわかりやすいだろう。また,アルファベット以外の記号では,ハイフンとアンダースコアは使っても大丈夫だ。ピリオドは,メソッドの記述で使うのでやめた方がいい。
3.2 関数
ある機能を持つものを関数という。
たとえば,2 次関数 f (x) = x^2 は,「x の値を2乗する」という機能を持っている。このように,ある機能を持ったものを関数という。プログラミングでは, 括弧の中の x を「引数 (ひきすう)」といい,処理結果を「戻り値」という。たとえば,f(3) = 9 となるが,このとき,3 が引数,9が戻り値である。戻り値がない(あるいは,あっても無意味な)関数もある。
プログラミング言語にあらかじめ用意されているものを「組み込み関数」,自分で定義した関数を「ユーザー定義関数」という。
組み込み関数にはどんなものがあるかはマニュアルを参照されたい。
簡単なユーザー定義関数を作ってみよう。
関数を定義するには,def に続いて,関数名,引数を書き,処理内容をブロックにして記 述する。戻り値がある場合は,return(戻り値) とする。
【例】2次関数 f(x) = 2x^2 +x−1
def f(x):
return(2 * x**2 + x - 1) # 関数ブロックなので4文字分のインデント
print("f(3)=", f(3))
===========
次は 制御構造