プログラミング入門 情報科学演習
2023.10.16
Pythonをインストールし,例題のhello.pyプログラムを作成して実行することを前回行いました.もう一度動作を確認してみましょう.
IDLE の画面において,
>>>
のように不等号が3つ並んでいる部分は自分で文字入力できるところです.Python ではエディタでプログラムを書かなくても,この部分にコマンドを入力することで,簡単な計算や処理を行うことができます.教科書を参考に進めていきましょう.
教科書の p.7 にあるコマンドの履歴ですが,現在のIDLEでは矢印キーなどによる操作に対応していません.Shellメニューをクリックしたら出てくるのですが,Alt+Pでひとつ前の操作,Alt+Nで一つ後の操作を呼び出すことができますので,矢印キーの代わりにそちらを使ってください.
教科書のp.8の例1-4にあるように,大体は直観的に理解できるはずですが,注意するべき相違点は除算です.Pythonでは整数どうしの演算においても,除算だけは実数型で実行されます.
a = 1 / 3 # 変数 a の値は 0.333333 |
コメントを入れるための記号は Pythonでは # です.(教科書p.30の List 2-1 の説明部分参照)整数型の切り捨ての除算を行う場合にはスラッシュ2つ // を使用します.
a = 1 // 3 # 変数 a の値は 0 |
プログラミング言語において非常に重要な演算に剰余算があります.記号は % です.教科書にも説明がありますが,左側の数値を右側の数値で割った余りを返す演算子です.この授業ではちょくちょく出てきますので,これから慣れていきましょう.
また,同じく教科書p.8にあるようにPythonではべき乗の演算子が用意されています.
a = 4 ** 4 # 変数 a の値は 256 |
数学において演算子に強さの違いがあるのと同様に,プログラミング言語においても強さの優劣があります.剰余算は除算と同じ強さです.教科書 p.9 の Table 1-1 に各種の演算子がまとめてありますので,確認しておいてください.
プログラミング言語においては値に型(かた)と呼ばれるものがあります.数値においても,整数と小数点を含む実数(浮動小数点数)は別のものとして扱われます.整数で済むのなら整数だけで計算する方が処理速度が速いため,昔から整数と実数は分けて使われてきました.
また,数値をどのように文字列で表すかを数値リテラルと言います.教科書を見ながら学習してください.
文字を数値としてではなく,そのまま文字として扱うことが多々ありますが,そのような文字の並び(1文字でも)を文字列と言います.数値と違うのは引用符で囲んで扱うことです.Python では基本的にはシングルクオート ' ' を使用しますが,二重引用符(ダブルクオート) " " なども使えます.教科書の p.14 を見てください.
引用符そのものやその他の特殊な文字を扱いたい場合にはエスケープシーケンスと呼ばれる文字の属性を打ち消す操作が必要になります.こちらも教科書 p.13 を見て学習しましょう.
全部を試したわけではないのですが,Table 1-2 の中にある \v (垂直タブ)は機能しないようです.
数学において変数は重要な要素ですが,プログラミング言語においても変数は重要です.変数は値を持っているオブジェクトということで,値は数値だけでなく,文字列やブール値(後述)などが使用でき,それらの違いを型という言葉で表現します.
教科書の p.17 に変数の名前をつける際の基本的な約束事がありますが,それ以外にも注意することがあり,特殊な事情が無い限り小文字で始めて下さい.大文字も使用できますが,先頭の文字はアルファベット小文字としましょう.慣習的なものですが,言語によっては大文字で始まる名前は変数ではなく,定数となるものもあります.
また,今回の教科書のような入門書では変数名として単純な a や b などを使用する例がよくありますが,なるべく名前を見れば意味がわかるようなものを使用しましょう.これから行っていく演習問題の解答例などを参考にどのように名前をつけるのかも学習してください.
教科書の p.74 の Table 3-4 に予約語の一覧があります.これらはプログラム中ですでに機能が与えられている文字列なので,変数名に使用することはできません.
プログラムは式と文から成り立ちます.今のところは意識しなくても多分大丈夫です.
変数に値を代入する作業で使用される記号が等号 = です.数学では等号であり等しいことを意味しますが,プログラミング言語ではほぼ全ての言語で代入の記号です.記号の左側に代入する変数があり,記号の右側に代入される値を置きます.
a = 1 |
上の例は,a という名前の変数に整数の1を代入する式です.他にも以下のような例が挙げられますが,オブジェクト指向言語全般で用意されている「多重代入」は大変便利な機能なので,今後も活用していくと思います.
i = 1 #整数の代入 f = 1.0 #実数の代入 e = 1e-5 #実数(指数表記)の代入 st = 'sample' #文字列の代入 |
多重代入の例
x, y = 1 #変数 x と y にそれぞれ 1 を代入 x, y = 1, 2 #変数 x に 1, y に 2 を代入 x, y = y, x #変数 x と y の値を入れ替え |
エスケープシーケンスのところでバックスラッシュ \ の記号が出てきました.この記号は本来英語圏でよく用いられる記号ですが,キーボードを日本語対応させるために日本国内では円マークが割り当てられています.両方とも同じ文字コードなので,使用する環境によってバックスラッシュとして表示されたり円マークとして表示されたりします.意味は同じですので,気にしないでください.
本日の内容ですが,教科書ではIDLEのインタラクティブモードで操作することが前提になっています.皆さんも教科書を見ながら,IDLEを使用してコマンド入力で試してみてください.
以下のことは意味がわかるまで実際に値を替えたりしながら確認してください.
以下のことを行いました.今後の基本になる重要な要素ですので,忘れないようにしましょう.
教科書p.30-43までを扱いますので,予習をお願いします.
来週から基本的に毎週課題を出しますので,自分でプログラミングを行って提出してください.レポート提出システムを使用します.ログインできるか確認しておいてください.
他学科の学生さんはレポート提出システムへの登録が必要ですので,必ず縄手までご連絡下さい.
nawate@の後にecs.shimane-u.ac.jpがアドレスです.