PHPerがpythonを勉強してみた。第一印象はC言語+PHPって感じ。

PHPerがpythonを勉強してみた。第一印象はC言語+PHPって感じ。

raspiやdeep learningなどで、サンプルコードがpythonで書かれている事も多いので、観念して勉強する事にした。
入門サイトをいくつかみてみたけど、とほほさんの所が一番よくまとまっていた。
http://www.tohoho-web.com/python/index2.html

とりあえず、pythonの独自性というか、特徴だなと思った点をリストアップしていく。
PHPが使えれば意外と簡単な感じだった(swiftの方が難しい…。)

// モジュール
pythonにおけるモジュールとは、pyファイルの事。
import test.py
のように別ファイルから読み込める。

// コメントアウト
#から改行まで。C言語やPHPの//と同じ使い方。

// 文字列
文字列に掛け算できるのは、なかなか面白い。初めて見た。

トリプルクォーテーションでは改行もOK
※pythonでは、シングル・ダブルクォーテーションの区別は無い

文字列の先頭にrをつけると、エスケープ文字がそのまま出力される。Windowsパス指定の時とか便利かな。

// 変数
変数宣言も型指定も無し

// タブ(字下げ)がブロック代わりになっている!(これが一番独特だ!)
phpやC言語の場合

pythonの場合

これは斬新! 「見た目=構造」って事ね。
確かに変なインデントとかする人もいるので、こちらの方がいいかも!?

// 制御文
if/for/whileの3種類のみ(switch-caseは無い)
条件式は()で囲まずに、最後に:をつける(忘れそう…。)

while文は普通なので省略

// 関数
funcやfunctionではなく、defで定義する。
関数定義は先じゃないとダメ!最後のコロン(:)を忘れそう。
※関数ブロックの最初の1行目は、javadocみたいに関数の説明が書き込めます
通常は、トリプルクォーテーションで複数行書くみたい。
関数以外にも、モジュール(pyファイル)やクラスの一行目に説明が書けます。

// 配列(リスト)
pythonでは、配列という言い方はせずに、リストと言うみたいです。
配列は違って、大きさを最初に宣言しなくて大丈夫なのが良い!(可変長配列)
また、型が混合していてても良い(pythonでは全てオブジェクトだから)

当然、多次元配列にも対応している。
リスト以外にも、以下の様な配列チックな機能がある
タプル(定数的な固定配列)
ディクショナリ(連想配列)
セット(同じ値は重複不可)

備考:
コマンドライン上で、引数無しのpythonと入力すると対話モード(一行入力するたびに実行されて結果が返る奴)が実行されるのだが、raspiにssh接続のせいか、ctrl+Dで終了させようとすると固まって何も出来なくなってしまう…。(再接続するしかない)
解決策としては、exit() とタイプすれば良いみたい。

いや~、それにしても、新しい言語を覚えるのは楽しいですね(爆)