Python

インデントとブロック,比較と、比較の連接,辞書オブジェクト,リストとタプル,if ... elif ... else,for,while,iteratableオブジェクト

更新日:

他言語からの流入組が最小工数でPythonを学ぶシリーズです。
Python文法詳解を読みながらアウトプットしていきます。

いくら何でも公式を上から順番に読むのは時間がかかり過ぎるし、
550ページとかある本なんて読みたくないので、なるべく薄くて枠だけ書いてある本が良いなと。

Python文法詳解
Python文法詳解

posted with amazlet at 19.05.25
石本 敦夫
オライリージャパン
売り上げランキング: 432,601

インデントとブロック

ブロックはbeginや { などの予約語ではなく、インデントを使う。
公式は以下。

公式に面白い例が載ってた。
見た目上、インデントが無茶苦茶だけれども文法的には合理性がある例。
要するにインデントとインデント解除のconsistencyがあればOK。

コーデイング規約によると、お作法としてスペースの個数は4個。だそうだ。
タブではなくスペースでインデントするなんて信じられない...。
エディタにタブ=スペース4個の設定を追加しないと。

言語仕様上の制約はインデントのconsistencyだけなので、
実際のインデント数はプロジェクトによるとのこと。ほうほう。

ただ、スペースとタブの混在禁止はこの際ハッキリさせましょう、という流れ。

比較と、比較の連接

比較演算子について公式は以下。

比較演算子を連接できる。PHPとRubyには無い感じ。

辞書オブジェクト

KeyValue型。本家は以下。Keyは変更不能で一意でなければならない、と書いてある。

キーを文字列にして連想配列みたくできる。
連想配列のキーにできるかどうかは、その型が更新可能であるかどうか?

リストとタプル

似て非なる配列的データ構造、リストとタプル。
リストの方は更新可能。タプルは更新不能。
任意の型を要素としてとれるので、配列ではなくリスト。

序数を使ってシーケンシャルアクセスできる。

負の序数を使うと後ろから数える。

レンジも使える。

レンジ指定で要素を更新できる。

if ... elif ... else

elseif が elif。
論理式が偽になるのは"数値の0"、空のコレクション、Noneオブジェクト。それ以外は真。

for,while

forループとwhileループがある。iteratableオブジェクトを指定できる。
whileループについて。

forループについて。

whileループ、forループの終了時に実行するブロックをelseで定義できる。
breakで中断した場合は実行されない。

iteratableオブジェクト

よくあるパターン。要素の順序を走査するためのインターフェースを実装したオブジェクト。
本家によるとこんな感じ。

-Python
-

Copyright© ikuty.com , 2019 AllRights Reserved Powered by AFFINGER4.