チャプター3を書いていこうと思います。

 

03_01 if 文を使う

 決められた条件によて処理を振り分けたいときには if 文を使います。

 if に続けて、判断すべき条件を記述します。条件を丸括弧で囲む必要はありません。条件の直後にはコロン(:)を記入します条件が成り立つか成り立たないかによって、プログラムの流れをコントロールします。

 

fig 03_-1 if 文の構造

 

      if 条件:

                       

     インデント  ブロック  <---条件が成り立つときだけ実行する部分

                   

 条件によって実行したいコードは、変数への代入だけかもしれません。ちょっと複雑なプログラムになると、条件によって複雑なの命令を実行したいことがあるでしょう。条件によって実行したい部分はブロックとしてまとめます。条件が成り立つときに実行するコードがどこからどこまでなのかを、Pythonが理解できるように記述します。

 

 Pythonではインデントを使ってブロックを表現します。ほかのプログラミング言語のように波括弧({})をつかったり、ブロックの「終わり」を示すために「end」のような特殊なキーワードを使いません。インデントを使ったブロックの表現は、Pythonの大きな特徴となっています。

 

 インタラクティブシェルを使ってif文を使ったコードを書いてみましょう。

 インタラクティブシェルでブロックを含むコードを打ち込むときには、気を付けることが1つあります。ブロックの終わりで空の改行を1つ入力して、Pythonでブロックが終わったことを伝えるのです。そうすると、Pythongaif文のブロックを実行します。

 

-----  if文の簡単な例 ----------------------------------------------

>>> year = 1868           <--- 変数に西暦を代入

>>> if year == 1868:          <---  変数と数値を比較する

・・・    print u"明治元年"

・・・                     <--- 何も入力しないで改行する

明治元年                       <---  if 文の実行結果

------------------------------------------------------------------

 if 文では、後に置いた条件が成り立つときだけ、直後のブロックを実行します。

この例では条件が成り立ちますので、ブロックを実行して文字列を表示しています。

 サンプルコードにあるイコールを2つ重ねた==という記号に注意してください。

これは、左右の式の比較を行い、結果を取り出すための演算子です。変数を作ったり、変数に代入したりするときに利用する=とよく似ていますが、異なった働きを持っています。

 

次は

◆else文を使う

 条件が成り立たないときに実行したい命令があるときは、 else文 を使います。

◆elif文を使った条件分岐

 

03_02 比較演算子

 

◆複雑な比較 理論演算

 

◆組み込み型を比較する

 

◆文字列検索と比較

 

◆関数の利用

 

03_03 for文を使う

 

◆for 文を使ってループを作る

 

◆繰り返し変数

 

◆break文と continue文

 

◆組み込み型のメソッドとループ

 

03_04 while分を使う

 

◆while文でループを作る

 

 

今日はここまで。書いていないところを埋めていきます。

 

豊。

 

こんにちは。

 

今日は、始めにもどり、chapter 2 です。02_1前に書きましたのでその続きです。

 

02_03 数値を使う

 

 「データ」という言葉を聞いて多くの方が真っ先に思いつくのが「数値」ではないでしょうか。身長、体重、本のページ数、降水確率や距離、西暦などはすべて数値として表現できます。回数をかぞえるためにも数値を使います。プログラムの中で、数量を記録するために数値を利用します。Pythonに限らず、プログラムではたくさんの数値を活用し、処理を行います。

 

 Pythonでは、数値を扱うためのデータ型として、整数型、浮動小数点が別に用意されています。

整数       :小数点以下の値を含まない数値を扱います。

浮動小数点型 :小数点以下の値を含む数値を扱います。

 

 整数には「短整数型」と、より大きな数値を扱える「長整数型」の2つがありますが、本書ではこのブログでは分けて解説していません。もう1つ、数値の型として「複素数型」がありますが、これについてもここでは触れません。

 

◆ 数値を使った四則演算

 

------ 引き算の例 ------------------

>>> 1867 -1603

264

------------------------------------

 

------- 乗数の計算 ------------------

>>> 2 ** 20

1048576

------------------------------------

 

◆演算と精度

 

------- 1割る2を計算する -------------

>>> 1 / 2

0

------------------------------------

 

----- 1.0割る2を計算する -----------

>>> 1.0 / 2

0.5

------------------------------------

 

◆四則演算と優先順位

 

------ 優先順位を変更する ------------

>>> 2 + 3 * 5

17

>>> (2 + 3) * 5

25

-------------------------------------

 

◆変数を使った演算と複合演算子

 

今日はここまで。また続きを書いていきます。

読みにくいですが、ご了承ください(^-^)

 

豊。

 

 

こんにちは。豊です。ファイル操作の続きです。06_01の続きです。08_02~08_05まで書きます。

 

06_02 ファイルを開く

 

open( ファイル名 , モード )

 

 

◆シーク位置について

 

 

06_03 ファイルを読む

 

◆ファイルオブジェクトのメソッド

 

◆ファイルから1行ずつ読み込んで処理する

 

06_04 ファイルに書き込む

 

06_05 ファイルとユニコード文字列

 

◆ファイルから日本語を含む文字列を読み込む

 

◆ファイル名の扱い

 

 

今日は、これで、ファイル操作について終わりです。ここまで。

読んでいただいてありがとうございます。

 

豊。

 

 

06_01 

Pythonのファイル処理

-------------- 豊の余談 --------------------------------------------------------------

こんにちは。今日は、どの言語でもある、ファイル処理についてです。私は、c言語の本の最後の辺りで、ファイル処理を学びました。やはり、Pythonでもあるんですね。余談でした。

-------------------------------------------------------------------------------------

 

 数値や文字列、リストといった組み込みのデータ型とても便利です。組み込み型を使った処理の速度はとても高速で、サイズの大きなデータも比較的扱いやすく、使い方を覚えると、とても効率的にコードを書くことができるようになります。

 

 Pythonでは、数字や文字列などのデータはメモリ上に置かれます。メモリ上のデータに対しては、とても高速に参照や書き換えを実行することができます。

 

 その代わり、メモリ上に置かれたデータは、プログラムを終了すると消えてしまいます。Pythonをインタラクティブシェルで立ち上げ、変数を定義したあと、いったんPythonを終了すると、データは消えてしまいます。再びPythonを立ち上げても、以前定義した変数は使えません。

 

   

                  ★★★ メモリとファイルの利点、欠点 ★★★ 

 

**************** メモリ ********************* ********* ファイル  *******************

利点 : 処理が速い、扱いやすい              アプリケーションを終了したり、電源を切っても

                                     消えない

欠点 :  Pythonのようなアプリケーション終了したり、

              たり電源を切ると消えてします                            処理が遅い

********************************************* ************************************

 

 

  処理した結果を保存しておきたい場合には、ファイルを使うと便利です。ファイルは、ハードディスクのようにいったん記録をしたら消えない記憶装置き書き出されます。ファイルに書き出したデータがあれば、Pythonwo終了してもファイルを消去しない限り消えることはありません。

 

 Pythonを再度立ち上げたとき、ファイルを読み込むことで書き出した内容を再現することができます。また、ファイルを読み込むことで、外部からPythonniデータを取り込むこともできます。たとえば、サイズの大きなテキストファイルを読み込んで処理を行ったり、表計算ソフトのようなアプリケーションで書き出したデータをPythonで読み込み、プログラムで加工を行うといった用途でファイル処理を利用することがあります。

 

 Pythonでは、ファイルを操作するために組み込み型のファイル型を使います。組み込み型としてファイルを扱うためのクラスが用意されているので、事前に特別な宣言などせずにファイルを開き、ファイルの内容を読み書きすることができます。

 

 Pythonでファイルを操作するときには、open( )という組み込みの関数を利用します。この関数を呼び出すと、ファイル操作するためのファイルオブジェクトが返ってきます。関数の戻り値(ファイルオブジェクト)を変数に代入するなどして、ファイルを読み書きすることになります。

 

 ファイルオブジェクトは何種類かのメソッドを持っています。このメソッドを呼び出すことで、ファイルに対する操作を行えます。文字列型などのメソッドをを呼び出すのと同様、ファイルオブジェクトに続けてドット(.)を記入し、されにメソッドを呼び出しを行います。

 

fig 06_01ファイルオブジェクト

 

 ファイルを読み書きする時は、文字列やリストを活用します。ファイルの内容を組み込みのデータ型に変換したり、書き出すデータを事前に文字列型に変換したり、といった処理をします。

 Cなどのプログラミング言語を知っている人は、Pythonのファイルオブジェクトの使い方に親しみを持つかもしれません。ファイルオブジェクトを作る open()関数に渡す引数などは、Cの fopen()関数とほぼ同じになっています。

 

 

----------------------------------------------------------------------------

 

今日はファイル操作のさわりの部分の解説です。 中級者さんには、簡単に感じると思います!(^^)!

お読みいただきありがとうございます。

 

豊。

 

 

 

chapter 09 クラスの継承と高度なオブジェクト指向機能

 

クラスを作るとき、すでにあるクラスに機能追加をしたり、機能を変更して新しいクラスを作ることがあります。このようなクラスの作り方を継承と呼んでいます。この章では、Pythonを使ったクラスの継承の方法について解説します。また、、クラスやオブジェクトについてより深い特徴についても解説します。

 

09_01クラスを継承する

 

 「クラスの継承」とは、あるクラスをひな型にして別のクラスを作ることです。

 

ひな型となる親クラスのことをスーパークラスと呼びます。また、スーパークラスをもとに作られたクラスをサブクラスと呼びます。

 

 前章で、クラスとはプログラミングで利用する部品(インスタンス)の設計図のようなものだ、と解説しました。継承という機能を使うと、すでにある設計図をもとにして、一部の機能だけを書き換えたり、機能を強化した別の設計図(クラス)を作ることができます。

 

********************************************************************

クラスの継承 

            スーパークラス ----- 継承 ------> サブクラス

                         ___________________                                  ----------

                 __init__()       ----------------->    __init__()

                              content()      -----------------> content()

                         -----------                                    ----------

                                                                                 機能を拡張

                                     ===========

*********************************************************************

 

 

 

 クラスの継承を行う際、基本的な機能は元の設計図(クラス)にていぎされているものをそのまま流用します。サブクラスでは、必要な部品だけを書き換えたり、新たに追加する機能だけを設計図に書きく加えることになります。同じ処理をコードを重複して書く必要がなくなるため、プログラムを効率的に開発することができます。

 

 また、Pythonはクラスの多重継承に対応しています。多重継承とは、複数のクラスを組み合わせて、新しいクラスを定義することです。

 

 また、Pythonでは数値や文字列といった組み込み型を継承して、新しいクラスを作ることもできます。組み込み型の持つ豊富な機能をそのまま引き継いで、新たな機能を持つ独自のクラスを作ることができるのです。

 

スーパークラスを指定する

 

 Pythonでクラスをk継承を行うためには、class文でスーパークラスを指定します。クラス名の後に丸括弧をつけ、その中に継承したいクラス(つまりスーパークラス)の名前を記述します。複数のクラスを継承する(多重継承)ときは、カンマ( , )でクラス名を列記します。

 

-----------------------------------------------------------------------

 class クラス名(スーパークラス名1[ , スーパークラス名2 , .........] ) :   

-----------------------------------------------------------------------

 たとえば、前の章で作ったPrismという角柱を表現するためのクラスを継承して立方体用のクラス「Cube」を作る場合は、次のようにします。

 

--------------------------------------

  class Cube(Prism)            

--------------------------------------

 立方体はちょうどサイコロのような形をした立体です。立体ですので、幅、高さ、奥行きという3種類の辺を持っていますが、四角柱と違って、3つの辺の長さが同じになります。以降では、このCubeクラスを使って継承の解説をしていきます。

 

 

◆メソッドのオーバーライト

 

のち記入(お待ちください)

 

◆初期化メソッドのオーバーライト

 

のち記入(お待ちください)

 

今日はここまで。重要なchapter9です。

 

読んでいただいてありがとうございます。読みやすいように書いていきます。

 

豊。

こんにちは。豊です。

 

クラスについてです。ちょっと私には、苦手です。

 

08_03 クラスを作る

 

 クラスをひとことで説明すると、プログラムで利用するオブジェクトの設計図といえます。オブジェクトは、プログラムでで利用するネジや歯車のような部品です。オブジェクトにはデータと命令が一体となっています。オブジェクトは、自分自身がどのようなどのようなデータを持っていることではなく、どのような命令を実行すればいいのか、自分自身がどのように振る舞えばいいのかを知っています。

 

fig 8.03 クラスとインスタンス

 

Pythonha多くのクラスを持っています。プログラムで実行することのうちたいていのことは、Pythonがあらかじめ持っているクラスを使い、インスタンスを作ることで処理できます。しかし、ちょっと特殊なこと、独自の処理を行いたいときには、Pythonが持っているクラスだけでは目的の処理を実行できないことがあります。そのような場合は、新しいクラスを作ったり、既存のクラスを拡張したりします。

 

 これまで見てきたように、クラスはインスタンスの設計図となるものです。インスタンスがどのような性質のデータを持っているか、インスタンスの持つデータに対してどのような処理をを行う必要があるかによって、設計図も変わってきます。

 

 クラスを定義することは、インスタンスがどのような性質を持っているかに注目して、クラスの設計図を作ることにほかなりません。

 

 Pythonのオブジェクトは、データとメソッドを持っています。クラスの設計図には、オブジェクトにどのようなデータが保存されるか、そしてそんなメソッドを持つかを定義していきます。データは、アトリビュートと呼ばれる変数のようなものを使ってオブジェクトに保存します。メソッドは、Pythonの関数定義と同じ記法を使って定義していきます。

 

 ここでは、Pythonの独自のクラスを作る方法について解説します。

 

今後下の◆についての項目を書いていきます。

 

◆クラス定義の方法

 

◆インスタンスのアトリビュート

 

◆メソッドの定義と初期化メソッド_int_()

 

 ・selfを使うとインスタンス自体を操作できる

 ・初期化メソッド

 

◆メソッドと第1引き数 self

 

◆アトリビュートの隠〇

 ・カプセル化

 

今日は、ここまで。

 

読んでいただいてありがとうございます。少しでも参考になれば幸いです。

 

豊。

 

 

 

こんにちは。豊です。

 

02が変数と組み込み型   となっています。見づらく申し訳ありません。

 

 プログラムは命令とデータの集合体です。Pythonでプログラムを作るときは、たくさんのデータを扱います。プログラムで利用するデータを保存するためには、入れ物を使います。それが変数です。

 

 料理をするときに、切った野菜や味付けをした肉を一時的に入れておくために、ボウルや小皿のような入れ物を使うことがあります。プログラムの中で、変数はそのような入れ物と似た使われ方をします。

 

 プログラムを実行する手順は複雑です。一時的でデータを保存したり、データを加工するために、プログラムではたくさんの変数を利用します。

 

 数値や文字列にような、プログラムで利用するデータをPythonではオブジェクトと呼ぶことはすでに解説しました。変数には、すべての種類のオブジェクトを入れることができます。

 

 変数は入れ物のようなものである、といいましたが、入れ物にもたくさんの種類があります。コーヒーを入れるためにマグカップがあり、洋服をしまうためにタンスがあるように中に入る物によって入れ物の種類や性質が異なります。同じように、Pythonでは変数に入れるオブジェクトの種類によって、変数の性質は働きが変化します。変数にどんな種類のオブジェクトが入っているのかについてよく考えるようにすると、プログラムへの理解が深まります。

 

 

 

◆変数に名前をつける

 

多くのプログラミング言語と同様、Pythonでは変数に文字を組み合わせて名前をつけます。変数につけた名前のことを変数名といいます。品物を分類するために、入れ物に名前を書き込んだタグをつけるようなものだと思ってください。

 

 Pythonでは、変数名として利用できる文字には簡単な決まりがあります。

 

●アルファベット、数字、アンダースコアを組み合わせて変数名を作る

 

 日本語を変数名として利用することはできません。空白(スペース)やドット(.)、カンマ( , )なども、変数名として利用できません。

 

●はじめの1文字、アルファベット、またはアンダースコア

 

 変数名は数字からはじめることはできません。

 

●アルファベットの大文字と小文字を区別する

 

「python」と「Python]は区別されて別の名前と見なされます。

 

●約30個ほど利用できない名前があります

 

「予約語」と呼ばれる「and」や「not」のような英単語は利用できないようになっています。

 

 

 

◆変数を定義する

 

◆変数を使って計算する

 

------ 変数による計算 ---------------------

>>> a = a + 1

>>> a

2

>>> a = a + 1

>>> a = a + 1

4

-------------------------------------------

 

-------- 変数による計算2 ------------------

>>> mach = 1225

>>> topspeed = 8600

>>> topspeed/mach

7

-------------------------------------------

 

◆変数に文字列を入れる

 

-------- 文字列の代入 ---------------------

>>> a = ]"abc"

>>> a

"abc"

------------------------------------------

 

 

 

 

◆変数に文字列を入れる

 

 

 

 

今日は、ここまで。

これらは、とある言語をマスターした方には、よくこんな簡単なものと思われるかもしらまんね。

 

豊。

こんにちは。豊です。

 

08_02_03 オブジェクトとインスタンス です。

 

 Decimalという、10進数の数値を誤差なく扱うクラスと、Decimalクラスから作ったインスタンスの使い方を簡単に見てきました。振り返ってみると、クラスのインスタンスと、組み込み型のオブジェクトはとてもよく似た作りになっていることがわかります。オブジェクトもインスタンスも両方ともデータを持っていて、データに対する捜査を行うためにメソッドを持っています。

 

 組み込み型には、データの性質によって数値型や文字列型などの「型」がありました。クラスの場合は、クラスの名前(クラス名)がこの型に相当します。クラス名によって、インスタンスの性質を決めるといってもよいでしょう。どのような型であるかによって、組み込み型のオブジェクトに対して実行できる操作やメソッドの種類が異なっていました。インスタンスの場合は、どのクラスのインスタンスであるかによって、メソッドや処理の種類が変わってきます。

 

-------------------------

fig080203

-------------------------

 

 組み込み型の型のクラスは、プログラムで使う部品の「設計図」のようなものととらえることができます。設計図をもとに、プログラムを組み立てるために作る「部品」がオブジェクトやインスタンスです。

 

 プログラムを利用する部品の設計図をあらかじめ作っておき、必要に応じて部品を作って利用する、というのがオブジェクト指向を使った開発の基本です。

 

 この章でへじめてクラスとインスタンスについて解説しましたが、クラスは文字列やリストのような組み込み型の型とよく似ていますし、インスタンスは組み込み型のオブジェクトに似ています。オブジェクト指向というと難しく聞こえますが、考え方自体は特に難しいことはありません。

 

読んでいただきありがとうございます。

次は、08_03_03のクラスを作るです。

 

豊。

 

 

Decimalクラスのインターフェースは、プログラムの中で組み込み型の数値型と同じように利用できます。Decimal型は10進数の数値を扱うクラスですので、四則演算が可能です。

 

---------Decimalクラスのインスタンスに数値の10を促す-----

 

>>> print   d + 20

30

 

------------------------------------------------------

 

 しかし小数点以下の数値と、Decimalクラスのインスタンスを計算するにはちょっと注意が必要です。数値型とDecimal型では、小数点以下の制度が違うためタイプエラーとなってしまいます。

 

----  Decimalクラスのインスタンスに0.2を促す-----------

>>> print d + 0.2

Traceback (modt recent call last):

     File "<stdin>", line 1, in <module>

TypeError: unsupported operand type(s) for +: 'Decimal' and 'float'

----------------------------------------------------

 

 これを防ぐためには、「0.2」をDecimalクラスのインスタンスとして作成したうえで加算します。小数点以下の数値を含むDecimalクラスのインスタンスを作るときには、引数の数値を文字列として与えます。これも精度を保つためです。

 

---------Decimalクラスのインスタンス同士で足算 -----------

>>> print d + Decimal("0.2")

10.2

------------------------------------------------------

 

 数値型で起こる細かな誤差が許されないような場面では、Decimalクラスはとても重宝します。また演算子を使った四則演算を含め、数値型と同じように利用できるので、Decimalクラスを使うために新しくおべえることも少なくて済みます。組み込み型の数値型と機能や働きが異なっている部分のみ、特別な使い方をするようになっています。

 

 Decimalクラスのインスタンスはメソッドを持っています。例えば、sqrt()というメソッドを使うと、平方根を計算することができます。

 

------ sqrt() メソッドを使う ---------------------

>>> print d.sqrt()

3.1937438845342623・・・・

---------------------------------------------

 

 Pythonは、このように特別なな用途に利用するデータや手続きをクラスとしてまとめ、たくさん内蔵しています。

 

終わり。

豊。

 

 こんにちは。豊です。

 

初めの目次紹介で、chapter1~chapter15 まで、コンテンツを書きましたが、次の3つのコンテンツにつきましては、c言語に詳しい人など、言語に詳しい人は、飛ばしても構わないと思います。

 

ただ、chapter1 では、しっかり書きます。

 

--------------------------------------------

 

chapter02 変数と組み込み型

 

chapter03 条件分岐とループ

 

chapter04 関数

 

---------------------------------------------

 

余暇があらば、書いていきます。

 

お読みいただきありがとうございます。

ともに、Pythonを学びましょう。

 

豊。