制御構文 - 比較演算子
ここ数日、PHPで上手くいかない事が何件かあって勉強があまり進みませんでした。
しょせん最下層ぺちぱーですから・・・。
前回から記事を節ごとに書く事にしました。
その方が後から見直す時に楽だからです。
以下、今回の備忘録です。
●4章 制御構文
■■比較演算子
比較演算子は < と >で値の大小を比較する。
ifやwhileなどのループで条件などに使う。
>>> 1 > 0
True
>>> 1 > 1
False
>>> 1.0 > 1
False
>>> 1 > 1.0
False
>>> 'b' > 'a'
True
大小の比較
・数値・・・数学的に比較し大小を判断。
・bytes・・・辞書順に比較し大小を判断。
・文字列・・・各文字をordし、順に比較し大小を判断。
※ord 文字に該当するアスキーコードを調べる。
>>> x = "あいう"
>>> y = "かきく"
>>> z = "あいあ"
>>> x < y
True
>>> x > z
True
・リスト・・・各要素を順に比較し要素について大小を判断。
要素数が違う場合は存在する要素だけで判断。
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5]
>>> d = [7]
>>> a < b
True
>>> a < c
True
dの要素数は1個だが、aの各要素(1、2、3)より7の方が大きい。
>>> a < d
True
要素が同じものなら要素数の多い方が大きい。
>>> e = [1,2,3,3]
>>> a < e
True
比較演算子は以下のように書ける。
>>> 0 < 1 < 2 < 3
True
同時に複数の比較演算が行えるので
人間の考える通りに書ける。
>>> def get_one():
... print('get_one')
... return 1
...
>>> def get_two():
... print('get_two')
... return 2
...
>>> def get_three():
... print('get_three')
... return 3
...
>>> get_one() < get_two() < get_three()
get_one
get_two
three
True
>>> get_one() < get_two() and get_two() < get_three()
get_one
get_two
get_two
three
True
■等価
等価をテストするオペレータは ==
オブジェクトが同じ値であると言える時に「等価」と言う。
文字列・・・同じ文字列
数値・・・同じ値であれば等価
リスト・タプル・・・順序と値が等価であれば等価
map型(辞書)・・・キーと値のセットが全て同じなら等価
True
>>> "hoge" == "hage"
False
>>> 1 == 1
True
>>> [1, 2, 3] == [1, 2, 3]
True
オブジェクトの型が違えば等価にはならない。
>>> 1 == "1"
False
>>> 0 == None
False
>>> False == None
False
数値同士なら整数と浮動小数点数で等価になる。
>>> 1.0 == 1
True
等価なオブジェクトが同一のオブジェクトとは限らない。
>>> x = [1,2,3]
>>> y = [1,2,3]
>>> x == y
True
>>> id(x)
140269941996000
>>> id(y)
140269941996432
■オブジェクトID
オブジェクトのID(Identity)・・・インタプリタがオブジェクトを管理する為のID。
※インタプリタ・・・プログラムを実行するソフトウェア。
isキーワードは2つのオブジェクトが完全に同一かを確認出来る。
>>> x = [1,2,3]
>>> y = [1,2,3]
>>> x is y
False
※シングルトン・・・単体。一つしか生成しないということを保証する。
文字列・数値などのイミュータブル(変更不可)な型の場合はシングルトンでオブジェクトを生成する。
>>> x = "hoge"
>>> y = "hoge"
>>> x is y
True
True
>>> 1 is 1
True
Noneもシングルトンで生成される。
>>> None is None
True
>>> False is False
True
>>> True is True
True
TrueやFalseもシングルトン。
いよいよ次からループ処理の勉強に入ります。
ちょっと嬉しいです。
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (17件) を見る