Python

Pythonの概要

More than 1 year has passed since last update.

returnとは

returnを使うと「関数を呼び出しただけで」戻り値を返す。

関数オブジェクトについて

Python では、関数はオブジェクトです。

たとえば次のような関数定義の実態は、「関数オブジェクトを作成してそれを変数に代入する」という動作になっています。
```

関数オブジェクトが作成され、変数 「果物の箱 」に代入される

def 果物の箱(”引数のもも”):
print(”引数のもも”美味しい!)

変数 果物の箱 の中身を表示してみると、関数オブジェクトであることがわかる

print(hello) # 実行結果:
```

そのため、変数 「果物の箱」 の中身を別の変数に代入しても、関数を呼び出せます。
```

変数 「果物の箱」 の中身を、別の変数に代入できるし、呼び出しもできる

フルーツの箱 = 果物の箱 # 関数オブジェクトを別の変数に代入し、
フルーツの箱(”引数のもも”) # それを呼び出す (結果は 果物の箱(”引数のもも”) と同じ)
```

コンストラクタとは

classからインスタンスを作成する際、

selfとは

クラスのインスタンス自身を表すもので、「self.xx」といった形で自身が保持する情報へアクセスする事ができます。いわゆる通常のメソッド(インスタンスメソッド)では省略する事が出来ないので、必ず書いてください。

lambda式とは

関数を式として扱う仕組み。式として扱うことで変数に格納することができる。
コロンを挟んで左側が引数のエリア、右側が返り値のエリア
lambda a, b : a + b

リスト、タプルとは

数値や文字といったデータを1つの入れ物にまとめることが出来ます。例えば、1~5までの5つのデータを扱う時に

data1 = 1
data2 = 2
data3 = 3
data4 = 4
data5 = 5

とするよりも

dataList = [1,2,3,4,5] #リスト
dataTuple = (1,2,3,4,5) #タプル

とまとめることで、データ操作が容易になります。
リストは定義した後に要素の変更が可能であるのに対し、タプルは変更が不可能です。
どちらも、複数の階層を持たせることが可能で、2次元配列、3次元配列といった柔軟な定義が出来ます。特定の要素を選択する場合は、変数名の後に「[ ]」で囲まれたインデックスで指定して下さい。インデックス+1番目の要素にアクセス出来ます。つまり、1番目の要素は[0]です。
http://python4study.9isnine.com/abc

セットとは

セットは、順序の保証がないオブジェクトです。
そのため、リストのように、インデックスを指定して特定の要素を取得することはできません。

a = set([1, 5, 2])

# for文を使ってセットの個々の要素を取り出す
for x in a:
    print(x)

実行結果
1
2
5
実行結果の通り、セットは順序の保証がないオブジェクトのため、セットを定義した順番に取り出せません。

要素の追加

次の構文を使用すると、要素を追加できます。
.add(要素)

要素の削除

removeで削除する

次の構文を使用すると、指定した要素を削除できます。
.remove(要素)
セットの中に指定した要素が存在しない場合は、エラーが発生します。

discardで削除する

次の構文を使用すると、指定した要素を削除できます。
removeとの違いは、指定した要素が存在しない場合でもエラーが発生しません。

その他のセットの操作

他にさまざまなセットの操作があります。
その一例として、次の構文があります。
len(セット)
.issubset(iterableオブジェクト)
.issuperset(iterableオブジェクト)
検索する要素 in セット

使用方法は次のプログラムを見てください。
```

coding: utf-8

a = set([1, 5, 2])

セットの長さを調べる

print(len(a))

セットの全要素が指定したオブジェクトに含まれているかを調べる

print(a.issubset([1, 5, 2, 4]))※セットの1,5,2が1,5,2,4の中に「全て」膨れまれているか
print(a.issubset([1, 5]))※セットの1,5,2が1,5の中に「全て」膨れまれているか

指定したオブジェクトの全要素がセットに含まれているかを調べる

print(a.issuperset([1, 5]))※引数の1,5がセットの中に「全て」膨れまれているか
print(a.issuperset([1, 5, 4]))※引数の1,5,4がセットの中に「全て」膨れまれているか

指定の要素が含まれているか調べる

print(2 in a)
print(4 in a)

実行結果
3
True
False
True
False
True
False
```

フローズンセット

フローズンセットとは上記のような変更ができない、変更不可能のセット

集合演算子について

集合演算子には、以下のものがある。

和集合(|)

和集合

積集合(&)

積集合

差集合(-)

差集合A-B
差集合B-A

対称差(^)

対称差

a = set([1, 3, 5])
b = set([1, 5, 10])

# 和集合
print(a | b)

# 共通集合
print(a & b)

# 差集合
print(a - b)

# 対称差
print(a ^ b)

実行結果
set([1, 3, 5, 10])
set([1, 5])
set([3])
set([10, 3])