【5月14日の授業の終わりごろにやりました。5月20日に復習します。】
計算機に仕事の指示をだすプログラム言語にはいろいろあります。 ここでは、Python (パイソン) をやります。 プログラム言語には得意・不得意があるのですが、 Python がいちばん応用のはばがひろいからです。 (しかし、複雑なプログラムを書くには、Python はかならずしも最適ではありません。 気象のシミュレーションのモデルは、いまでも Fortran (ただしその新しい規格) で 書かれています。)
niigata にログインして、 各自のホームディレクトリ (この授業用のディレクトリをつくっている人はそこ) に cd したうえで、 つぎのことをやってください。
ls はファイル名のリストを見るコマンドです。 「01」から「08」ではじまり、「.py」で終わるファイル名があるでしょう。
プログラムのなかみを見ます。1行だけなので、cat をつかうことにします。
そして、実行してみます。niigata では、コマンド名 python でも python3 でも 同じ Python version 3 がうごきます。 ここでは python のほうをつかう形をしめしますが、python3 でもかまいません。
結果とプログラムとを比較してみてください。 プログラムの「print( ... )」のかっこの中にある文字列が、結果に出ています。 もうすこしくわしくいうと、プログラム内では、 文字列が引用符でかこまれていますが、結果ではかこまれていません。 Python では、引用符でかこまれた内容が文字列としてあつかわれるのです。 引用符には single quotation marks (' ') と double quotation marks (" ") があります。 どちらをつかうこともできます。 ただし、文字列のはじめにつかったのと同じ引用符で閉じなければなりません。
同じくあいさつですが、 ちょっと趣向をかえて、文字列を日本語ローマ字にしてみました。 また、文字列を部品のように用意しておき、くみたてて表示してみます。
Python をふくむ多くのプログラム言語は「変数」をもっています。 計算機の記憶領域の部分を指定して、名まえ (変数名) をつけます。 変数名は、アルファベット、数字、アンダースコア (「_」、下線) から組み立てます。 ただし最初の字は数字以外にします。アルファベットの大文字と小文字の区別があります。
Python の「=」は (便宜上「イコール」とよみますが) 「左辺と右辺が等しい」という意味ではありません。 「左辺に右辺を代入する」という意味です。 左辺にかかれた変数の値を、右辺にかかれた式によってきめる、ということです。
02のプログラムでは、 s1, s2 という2つの変数に、それぞれ文字列を代入しています。 そして、 「s1 + s2」という演算をおこなって、その結果を s という変数に代入し、 その結果を print で出力します。 「s2 + s1」も同様にやってみます。 このばあい、「+」は文字列をつなぐ演算であることがわかるでしょう。
ローマ字で言語を表記するときは、空白や句読点をつかって読みやすくします。 02 のプログラム例では、space, comma, period という変数に、 それぞれ1文字ずつの 空白、コンマ、ピリオドを入れましたが、つかっていません。 たとえば「s = s1 + space + s2 + period」などのようにつないで出力してみましょう。
03のプログラムでは、 変数 n1 に 4、n2 に 3 を代入してから、x に「n1 + n2」を代入し、出力します。
04のプログラムでは、 変数 n1 に '4'、n2 に '3' を代入してから、x に「n1 + n2」を代入し、出力します。
結果がちがいますね。
04のばあい、数字が引用符でくくってあるので、n1, n2 は文字列型になります。 したがって「+」は、02のばあいと同じように、文字列をつなぐ操作です。
03のように、数字や数字列を引用符でくくらないで書いたら、数値としてあつかわれ、 n1, n2 は数値型になります。 右辺が小数点をふくまない数字列なので、 n1, n2 は数値型のうちの整数型になります。 【小数点をふくんでいると、実数の近似値をあらわす「浮動小数点型」になりますが、 ここでは深入りしないことにします。】 数値型どうしの「+」は、たしざんです。
05のように、一方が文字列型、他方が数値型であると、 「+」はエラーとなり、プログラムは途中でとまってしまいます。
このように、Python では、変数の型の区別があるのですが、 型を宣言する文はなく、変数の型は最初にその変数に値がいれられたときにきまります。 【このような特徴をもったプログラム言語は、短いプログラムを書くのには便利ですが、 複雑なプログラムをつくるときには、トラブルの原因がわかりにくいという欠点もあります。】
型変換関数をつかって、型をそろえてやると、「+」が有効になります。 06 では、n2 は整数型ですが、str(n2) は文字列型になるので、 「+」で文字列をつなぐことができます。 07 では、n1 は文字列型ですが、int(n1) は整数型になるので、 「+」でたしざんができます。
数値型の変数については、四則演算をすることができます。
たしざんは「+」、ひきざんは「-」、かけざんは「*」(アステリスク、星印)、 わりざんは「/」 (スラッシュ、斜め線) であらわします。
「/」をつかうと、整数どうしのわりざんでも、結果が 整数でない浮動小数点数になることがあります。 【結果を整数にかぎる (あまりをきりすてる) わりざんのためには、 「//」(スラッシュを 2つつないで 1つの演算子) が用意されています。】
四則演算がくみあわさった式では、 かけざん・わりざんが、たしざん・ひきざんよりも優先されます。 たとえば「n1 + n2 * n3」では、まず n2 と n3 の積を計算し、 n1 と その積とをたします。
かっこ をつかって、かっこの中をさきに計算させることができます。
このあたりは、だいたい数式のばあいと同様です。