Pythonに挑戦(8)その(3)からの続き
(2) 比較演算子(結果はTrue, False)
a == b # aとbが等しければTrue, 等しくなければFalse
a !=b # aとbが等しくなければTrue, 等しければFalse
a < b # aがbよりも小さければTrue, 小さくなければFalse。aとbが文字列のときは、辞書順の比較。
a > b # aがbよりも大きければTrue, 大きくなければFalse。aとbが文字列のときは、辞書順の比較。
a <= b # aがb以下ならTrue, b以下でなければFalse。aとbが文字列のときは、辞書順の比較。
a >= b # aがb以上ならTrue, b以上でなければFalse。aとbが文字列のときは、辞書順の比較。
a is b # aとbの値が同じかどうかではなく、同一のオブジェクトであるときにTrue,a = bの実行後には同一オブジェクトを指すのでTrueになる。a is bがTrueになるとき、bの値を変更するとaの値も変更される。使用に際しては微妙な点に関する注意が必要。
a is not b # aとbが同一のオブジェクトでないときにTrue
a in b # aがbに含まれるときにTrue, 含まれていないときにFalse
a not in b # aがbに含まれていないときにTrue, 含まれているときにFalse
(3) 文字列演算子(以下の部分文字列を取り出す[n:m:s]の操作をスライス操作と言います。0は先頭文字、負数は末尾からの文字数を表します)
a + b # 文字列aのうしろに文字列bを連結する
a * c # 文字列aをc回繰り返す
a[n] # 文字列aの最初からn番目の文字を取り出す(先頭文字は0番目)
a[n:m] # 文字列aの最初からn番目の文字からm番目の文字までの部分文字列を取り出す
a[n:] # 文字列aの最初からn番目の文字から最後の文字までの部分文字列を取り出す
a[:m] # 文字列aの最初の文字からm番目の文字までの部分文字列を取り出す
a[n:m:s] # 文字列aの最初からn番目の文字からm番目の文字までをs文字ごとに取り出す。
(4) 演算子の優先順位
複数の演算子を使って式が書かれているとき、式の左から右に向って評価されていくのが原則ですが、演算子によって、どの演算子を優先するか、その順番が決まっています。
一番優先されるのが、(…), リストの[…], 辞書の{…}の括弧と、変数・定数の並び、…, …, …のカンマです。
次に、‘[‘と‘]’の間に書かれているリストやタプルの添字、スライス操作、‘(‘と‘)’の間に書かれている関数の引数指定、オブジェクトの属性を示す‘.’が評価されます。
その後以下の順に評価されていきます。
べき乗の‘**’
+a, -a, ~aの‘+’, ‘-‘, ‘~’
乗算の‘*’, 行列乗算の‘@’, 除算の‘/’, 余りの‘%’
加算の‘+’, 減算の‘-‘
シフト演算の‘‘, ‘‘
ビットごとANDの‘&’
ビットごとexclusive-ORの‘^’
ビットごとORの‘|’
比較演算子、‘==’, ‘!=’, ‘>’, ‘<', '>=’, ‘<=', is, is not, in, not in
論理型反転のnot
論理型ANDのand
論理型ORのor
一番優先されるのが、(…), リストの[…], 辞書の{…}の括弧と、変数・定数の並び、…, …, …のカンマです。
次に、‘[‘と‘]’の間に書かれているリストやタプルの添字、スライス操作、‘(‘と‘)’の間に書かれている関数の引数指定、オブジェクトの属性を示す‘.’が評価されます。
その後以下の順に評価されていきます。
べき乗の‘**’
+a, -a, ~aの‘+’, ‘-‘, ‘~’
乗算の‘*’, 行列乗算の‘@’, 除算の‘/’, 余りの‘%’
加算の‘+’, 減算の‘-‘
シフト演算の‘‘, ‘‘
ビットごとANDの‘&’
ビットごとexclusive-ORの‘^’
ビットごとORの‘|’
比較演算子、‘==’, ‘!=’, ‘>’, ‘<', '>=’, ‘<=', is, is not, in, not in
論理型反転のnot
論理型ANDのand
論理型ORのor