投稿

6.Pythonの継承について

6.Python の継承について 継承とは、他のクラスと同じメソッドとインスタンス変数を持つクラスを定義することである。既に定義済のクラスの内容を引き継いで新たなクラスを定義するものである。次のコードでは、 CalcuClass を継承して Child クラスを定義している。 Child クラス自体は通過するのみであるが、 Child クラスは、 CalcuClass を継承しているため、 CalcuClass のメソッドを備えていることで、画面に Hello World を表示する。 class CalcuClass:     a = 'Hello World'     def s_method1(self):         print(self.a) class Child(CalcuClass): #CalcuClass を継承し Child クラス定義     pass ins = Child()      # インスタンス化 ins.s_method1()    # メソッドの呼び出し 実行結果 Hello World   Python では、複数のクラスから継承することも可能で、これを多重継承と呼び、継承したいクラス名を「 , (コンマ)」で区切る。 class CalcuClass1:     # クラス 1     a = 'Hello World'     def s_method1(self):         print(self.a) class CalcuClass2:    # クラス 2     b = 'Good Bye'     def s_method2(self):    ...

5.クラスについて

5. クラスについて 構文ルールに従ってクラスを定義するには、 class に続けて、任意のクラス名を記述することになる。クラスの命名規約( PEP8 )では、①クラス名の頭文字は常に大文字で記述する(例: Calcu ) ②クラス名称が複数ある場合は、常に頭文字を大文字で記載する。(例: CalcuClassName) クラスはオブジェクトがどのような変数(プロパティ)や手続き(メソッド)を持つかを定義した設計図あるいはひな形であり、プログラム中で実際にオブジェクトとして扱うにはメインメモリ上に領域を確保して実体化する必要がある。 オブジェクト指向のプログラミングにおいて、インスタンス(クラスを基にした実際の値としてのデータ)を生成することをインスタンス化と呼ぶ。つまり、クラスを利用する場合には、必ずインスタンス化が必要となり、インスタンスの生成には、インスタンス=クラス名 () とする。 オブジェクトは「データ」と「手続き」から構成されており、この手続き( method )の部分がメソッドに相当し、プロパティ(属性)は、オブジェクト固有のデータで、オブジェクトの性質や設定に関する情報である。コンストラクタは、クラスの処理を実行するインスタンスが生成される際に実行されるメソッドで、主にクラスの変数を初期化する際に使われる。   クラスの中身は、メソッドやコンストラクタからなり、クラス内に定義された関数をメソッドと呼ぶ。ただし、普通の関数とメソッドで異なるのが、メソッドは必ず1つ以上の引数を持つということである。メソッドを定義する際には、かならず "self" という引数を指定する必要がある。この "self" は、インスタンス自身を表す引数で、必ず1番初めの引数として記述する。ただし、必ずしも "self" でなければいけないわけではない。 that や yourself などでも可であるが、 Python プログラミングの慣例として "self" と記述する。 また、メソッドの呼び出しは、インスタンス名 . メソッド名 () として、必ずインスタンスを指定する必要がある。ただし、クラスの中では実行時まだインスタンスが生成されていない状態であり、そ...

4.ローカル変数とグローバル変数について

4. ローカル変数とグローバル変数について 変数には、ローカル変数とグローバル変数があり、ローカル変数は 関数の中で定義されている変数のこと である。次のコードでは、関数 "func1" の中で変数 "a" が定義されているので、変数 "a" はローカル変数となる。 def func1 () :     a = 10    # ローカル変数     print ( a ) func1 () 実行結果 10   次のコードでは、関数 "func2" の外で変数 "a" が定義されているので、変数 "a" はグローバル変数となる。つまり、グローバル変数とは、 関数外で定義されている変数 のことである。 a = 1000    # グローバル変数 def func2 () :     print ( a ) func2 () 実行結果 1000   ローカル変数とグローバル変数の決定的な違いを、 変数スコープ (変数が有効な範囲)の違いとして、ローカル変数とグローバル変数を同時に用いる場合の次のサンプルコードで確認する。 a = 1           # グローバル変数 def func3 () :     a = 1000     # ローカル変数     print ( a ) func3() 実行結果 1000   この場合、結果として出力されるのは、「1」「1000」のどちらかを考えると、答えは「1000」となる。これは、関数 func3 が実行される際に、関数内の変数 a が参照されているためである。では、次のサンプルコードではどうか。答えとして出力されるのは「1」で、グローバル変数が参照されたことになる。 a = 1         ...

3.関数について

イメージ
3. 関数について 関数は、 インプットされた値をもとに、決められた処理を実行してくれるプログラムの部品 である。プログラムをコーディングしていくと、入力された値のチェックや、毎回同じように行う必要がある計算式など、同じような処理を複数回実行する場合がある。 Python では def 文を用い関数を定義し、 関数に渡す値のことを 引数と呼び、 関数から返ってくる値のことを 戻り値と呼ぶ 。 dsf func(a,b):     # 関数を定義     return a+b   # 関数の戻り値 print(func(1,3))   # 関数の呼び出しと引数 print(func(4,9))   # 関数の呼び出しと引数 実行結果 4 13   何度も繰り返す必要があるような処理を 予め部品化 し、 何度も呼び出す形で利用する ことができれば便利である。関数をうまく使うことで、コード全体の「 構造化 」が図れ、効率的なプログラミングが可能となる。   引数や戻り値は必須ではなく、引数や戻り値が存在しない関数も存在する。 def 文は1つのブロックを構成する場合は、インデント(字下げ)をすべて合わせる必要がある。 インデントを適切にしないと構文エラーになるか、思わぬ動きにつながり注意が必要である。また def 文では( )の後ろに:が必要となるので注意する。   Python の関数の命名ルール は、変数の命名ルールと基本的に同様である。 関数の命名ルールは、① 英語(大文字も小文字も可能)②数字( 0~9 )③ _ (アンダースコア)を使用する。ただし、 関数の先頭に数字を用いると エラー( SyntaxError:  invalid syntax )となる。関数の引数と戻り値については、 引数は 関数に渡す値であり、関数への インプット 情報である。 戻り値は 関数から返される値であり、関数の アウトプット 情報である。   関数プログラミング表現のバリアントを示す。 ①      一般的な引数を渡す方法 def add_func ...

特殊なデータ構造を持つリスト・タプル・辞書・集合を復習

イメージ
特殊なデータ構造を持つリスト・タプル・辞書・集合を復習 リスト( list )とは、配列のことである。配列とは「データのまとまり」で、複数の値を代入することが可能な変数である。配列に格納した1つ1つの値のことを「要素」、それぞれの要素の位置のことを「要素番号」または「インデックス( index )」呼ぶ。インデックスは、左から順番に 0 から始まる連番で管理する。   図.リストとは リストの定義は [ ] (カギカッコ)を利用し宣言する。各要素は「 , (コンマ)」で区切る。次のサンプルコードで確認する。 list = ["012345"," あいうえお ","ABCDEFG"] print(list[0])     # 0 番目の要素を表示 print(list[1])     # 1 番目の要素を表示 print(list[2])     # 2 番目の要素を表示 実行結果 012345 あいうえお ABCDEFG   次のプログラムのようにリストの要素は変更や追加、削除することができる。次のコードで確認する。 list = ["012345"," あいうえお ","ABCDEFG"] list[2] = "abcdefg"   # 2番目の要素を変更 print(list) 実行結果 ["012345"," あいうえお ","abcdefg"]     タプル( tuple )は要素の変更ができない配列であり、要素の追加も削除も同様にできず、やろうとするとエラーが発生する。 tuple = ("012345"," あいうえお ","ABCDEFG") tuple(0) = "abcdefg"   # 要素変更はエラー SyntaxError (構文エラー)が発生する。   リストは [ ] を用い定義するが、タプルは ( ) で定義する。 tuple = ("012...

データの種類について

イメージ
2. データの種類について データの種類は、次の図のように、そのデータの使用目的やアクセス手法等、いくつかの基準により分類されている。   図.データの種類 Python では、データの種類 ( 型 ) により、表示やアクセス方法等プログラム処理が異なるので、変数に格納されたデータの種類(型)を type() で確認するためのコードを載せておく。 str='abc'# 文字列型 print (type (str))#class 'str' num=5# 整数型 print (type (num))#class 'int' num=3.14# 浮動小数点型、実数型 print (type (num))#class 'float' check_flg = True# ブール型、論理型 check_flg = False print (type (check_flg))#class 'bool' date1 = '2021/8/31'# 日付型 print (type (date1))#class 'str' list = ['abc', 6, True]# リスト型、配列型 print (type (list))#class 'list' tuple =('abc', 6, True)# タプル型 print (type (tuple))#class 'tuple' dict = {'Key1' : 'Val1', 'Key2' : 'Val2'}# 辞書型 print (type (dict))#class 'dict'

Python活用の基礎講座  ~スマホでPythonシリーズから抜粋~

イメージ
Python 活用の基礎講座  ~スマホで Python シリーズから抜粋~   1. 変数について 変数( variable )とは、各種データを扱うメモリ領域のことを指し、メモリ領域を変数という箱に例え、この箱の中に数字や文字列、日付などのデータを入れることができる。その箱の中のデータに応じ処理を選択し、箱の中のデータは演算や画面表示等、各種用途に使用される。 図.変数とは Python では、変数と変数の初期値を=(イコール)で繋ぐことで変数の宣言を行う。(変数名) = (初期値)の=は「等しい」という意味ではなく、「代入する」という意味である。また、 Python は動的に型付けをしてくれるので、データ型の指定は不要である。 d1 = 500   # 変数宣言(変数 d1 は初期値 500 ) print(d1)   # 実行すると画面に変数の中身である 500 を表示 d2 = ' 富士山 '   # 変数宣言(変数 d2 は初期値 ' 富士山 ' ) print ( d2 )       # 実行結果として、画面に ' 富士山 ' が表示される   Python は、変数のみで宣言することは不可であり、必ず初期値を指定する必要がある。 JavaScript など他の言語では、変数だけを宣言しておき中身は空にすることも可能だが、 Python では初期値なしの変数宣言を行うことはできない。 変数を宣言するための表現方法は複数あり、次のような記載をすることがある。 d0 = 1 d1 = d2 = 2 d3, d4 = 3,4 print(d0, d1, d2, d3, d4) 実行結果 1 2 2 3 4   もちろん、次のようにそれぞれ1つ1つ変数を宣言しても同様であり、見やすい書き方、意味のまとまりを考え使い分けることが重要となる。 d0 = 1 d1 = 2 d2 = 2 d3 = 3 d4 = 4 実行結果 1 2 2 3 4   次は変数の命名ルールについて復習する。 Python で利用できる変数の命名ルールでは、文字にはアルファ...

Pythonのコーディングの基本

Python のコーディングの基本 Python のコーディングの基本をご紹介します。 変数とデータ型について、 Python では変数を使ってデータを格納します。変数の定義は、変数名に値を代入することで行います。データ型には整数( int )、浮動小数点数( float )、文字列( string )、リスト( list )、タプル( tuple )、辞書( dictionary )などがあります。また、これらの基本的な構文をマスターすると、 Python で効率的なコードを書くことができます。なお、網掛け部分が Python のプログラムコードで、#以降の文はプログラムに影響しないコメント文です。また、コードの前の空白は、4個の半角スペースとなっていますので注意が必要です。   例 1. 条件分岐 条件によって処理を分岐させるために、 if 文を使用します。 # 変数の定義 x = 5 y = 3.14 name = "Alice" my_list = [1, 2, 3, 4, 5] my_dict = {"apple": 2, "banana": 3, "cherry": 5}   例 2. ループ 繰り返し処理を行うために、 for ループや while ループを使用します。 x = 10 if x > 5:     print("x は 5 より大きいです ") else:     print("x は 5 以下です ")   例3 . 関数 処理をまとめて再利用するために、関数を定義します。 # for ループ for i in range(5):     print(i)   # while ループ x = 0 while x < 5:     print(x)     x += 1   例4 . 例外処理 予期せぬエラーが発生した場合にプログラムの実行を続行するために、例外処理を使用します。 def add(x, y):...