2. 対話モードでの実行
Pythonの実行方法は以下の2種類が存在する。
- 対話モード: コマンドプロンプトに随時コードを書き込んでいく
- スクリプトモード: 拡張子が「.py」のスクリプトファイルを作成し、それを実行する
※「python」の代わりに「ipython」と入力すると、対話モードの拡張版が使用できる。
「ipython」は標準ライブラリではない為、インストールが必要。
2.1 基本演算
数値の足し算、引き算、掛け算、割り算、指数などの計算方法について紹介する。 対話モードでいろいろ試してみよ。
なお、本テキストでは演算子記号の両端にスペースを入れているが、 これは単にコードを読みやすくするためだけのものであり、 スペース無しでも問題なく実行できる。
>>>3 + 9
12
>>>3 - 9
-6
>>>3 * 9
27
>>>23 / 9
2.5555555555554
>>>23 % 9
5
>>>23 // 9
2
>>>2 ** 9
512
>>>3.2e-3
0.0032
演算子の計算優先順序は算数で習うように、乗除の演算子は加減の演算子より優先順位が高い。 また、人が多項式を書く際には、括弧()、中括弧{}、大括弧[]を用いて表現することが多いが、 プログラミングコードにおいては、括弧()のみを用いて計算順序を指定する。 逆に、中括弧{}、大括弧[]を用いるとエラーになる。
>>>1 * 2 + 3 * 4 + 3 - 2 / 5
16.6
>>>1 * (2 + 3) * (4 + (3 - 2) / 5)
21.0
2.2 変数
プログラミングでの「変数」と数学での「変数」は意味がことなり、数学では \begin{align*} f(x, y) = x^2 +axy + by \end{align*} などの関数において\(x,y\)のことを指すが、プログラミングでの「変数」はメモリーの記憶域を意味する。 プログラミングでの変数は英語だと「variable」になる。 一方でプログラムで上記の式のような実装を行い、 関数を定義したときにその関数に渡す値のことは「引数(ひきすう)」と言い、 英語なら「parameter」または「argument」※と呼ぶ。
※「parameter」と「argument」はともに「引数」を表すが、 より正確に言うなら「parameter」は「仮引数」で、 「argument」は「実引数」というべきなのかもしれない。
2.2.1 変数名と代入
Pythonでは、変数名にアルファベット・英数字・アンダースコアなどの組み合わせが使用できる。 また、平仮名・片仮名・漢字も変数名として使えるがコードで使用している例を見たことがない。 一方、Pythonに予め登録されている予約語(for/if/True/def/tryなど)は変数名として使えず、 また、数字から始まる変数名も使用不可である。
プログラミング言語において値の代入はイコール記号「=」を用いることが多い。 これも数学での等号とは意味がことなり、 プログラミング言語では「=」を挟んで右から左への値の代入を意味する。 なお、文字列を代入するときはその文字列をシングルクォーテーションで囲うことに注意せよ (文字列については4章で詳しくみていく)。
>>>a = 1
>>>a
1
>>>b = 2
>>>a + b
3
>>>(a + b) * 3 ** b
27
>>>1c = 120
SyntaxError
>>>猫 = 123
>>>猫
123
>>>d = 'HAL-9000'
>>>d
'HAL-9000'
Pythonの変数名はスネークケース (単語と単語の間をアンダースコア _ でつなげた命名規則)で 記述することが多い。 これでコード書くとPythonっぽくみえる。
>>>jpn_score = 72
>>>eng_score = 73
>>>sci_score = 70
>>>tot_score = jpn_score + eng_score + sci_score
>>>tot_score
215
2.2.2 変数への値の再代入と省略記法
一度定義(宣言)した変数に値を再代入すると前の情報は破棄される。 (この話は多少ややこしいので、詳細な説明は省く。 リストの説明の際に再度紹介するが、 詳しく知りたい場合は「参照渡し」や「値渡し」と検索してみるとよい。)
>>>a = 3
>>>a
3
>>>a = 2
>>>a
2
>>>b = a
>>>b
2
>>>b = 4
>>>b
4
>>>a
2
自身の変数に対して演算するときは省略して書くともできる。 他の言語ではプラス1するときは「a++」などと書ける場合もあるが、 Pythonではこの書き方はできないので注意せよ。
>>>a = 2
>>>a = a + 3
>>>a
5
>>>b = 2
>>>b += 3
>>>b
5
>>>b *= b
>>>b
25
※Pythonは定数をサポートしていない。 JavaScriptなら「const a = 2」と書けば、 変数aにはこの宣言後、値の再代入ができず変更不可になる。 Pythonには言語レベルでのこのような機能がない為、 定数を表現するには慣例として変数名を大文字とアンダーバーで書く。 「MY_PIE = 3.14」このように書けば、プログラマは定数だと分かりやすい。