BETA

Python日記(1)

投稿日:2018-12-05
最終更新:2018-12-05

クラウドインフラエンジニアとして現役やってるけど、プログラミングというものはシェル以外仕事で扱ったことがない。最近仕事で必要になったのでPythonを触り始めた、そんな自分の記録。シェルばっか触ってる奴が突然Python触り始めるとどう思うのか、どうぞご覧あれ。

昔やってたこととスタート地点

学生時代はCとLISPの方言をやってたけれど、ソフトウェア開発理論をきっちり勉強したことがないのでオブジェクト指向などはほぼ知らない状態。なので「メソッド」「クラス」とか言われてもイメージがわかないような状態からスタート。しかしソフトウェア開発に使用するのではなく、日常的な運用作業の自動化に使う程度なので多分複雑なことはしばらくやらない。もしくはやらない。

Cとは全然違うなぁ

とかいいつつ、もちろん似たような所もある。多分気づいていない仕様とか機能が大量にあるはずなので、気づいたところだけ列挙。

Cと似ているところ

  • import文でライブラリを読める(他の言語でも当たり前だろうなぁ)
    • Cではヘッダと言っていたな。stdio.hとかmath.hとか・・・懐かしい
  • 配列がある。2次元以上を扱えるかは今後確認する
  • 当たり前だけどifforの制御構造がある
  • import sysする必要はあるが、sys.exit()でOSに返り値を渡せる
  • 同じくimport sysするとコマンドライン引数が取れる
    • sys.argv[]という配列を参照すると拾える
  • len(sys.argv[])すれば引数の個数も取れるが、最低でも1になる様子
    • sys.argv[0]には自分のプログラム名が入っている
  • defで関数を宣言でき、もちろん引数も取れる
  • 変数型のキャスト的なことはできる

Cと違うところ

  • 構造体がない? 使ったことないけど共用体もないっぽい?
  • 変数宣言しなくてもエラーにならない。忖度してくれるの助かる
  • ポインタは今のところ使ってないけど、あるのかどうか・・・
    • あんまり進んで使いたくはないけど。
  • 行末印がない。セミコロンとかそういうの
  • インデントが文法になっているので、間違えるとエラーになる
    • Cでは文法ではなく可読性向上のための道具だった
  • 連想配列というものがあるらしい
  • 辞書型の存在。仕事ではJSONを入れて扱うことが多い
    • 配列とは型が違うが、複数の値を入れられるという点で似ているので間違えやすいかもしれない
    • jqコマンドとは異なるキー指定記述を行う。dict[0][Key]みたいな
    • import jsonすると、JSON処理に便利な関数が色々使えるようになる
  • リスト名.メソッドという書き方がある
    • どうもメソッドという奴は、特定の働きをする関数的なもののようだ
    • ただ、どういう変数(配列)にどんなメソッドがあるかは把握しきれていない
  • for文で配列の中身を全部洗うとき、ループ回数を意識しなくても良い
  • 配列に値を追加する方法が複数ある
    • appendメソッドを使う方法が見た目的にわかりやすい
  • そういえば関数のプロトタイプ宣言が必要という情報をまだ見ていない

その他

エディタはとりあえずvscodeで、Pythonエクステンションとpylintを入れてちょこちょこコーディング。でも時折Windowsのタスクマネージャを開くと、vscodeの子プロセスがとんでもない個数になっていて驚く。不具合なのかは公式ドキュメントとかIssueを見ないとわからないけれど、間違いなくメモリを圧迫するので使用時は気をつける。あるいは他のエディタ・・・というかもうIDEなのかもしれないけれど、乗り換えてしまうのも手かな。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@exstrz'の技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう