2017/08/13

PyQ

Pythonやってみようと思いつながらただ時間が過ぎ去ること川の如しだったけど、今日「長年のノウハウを学びたい - PyQが「設計」のノウハウを学べるコンテンツを追加 - PyQオフィシャルブログ」を見て、他の言語の糧にもなるだろうと勢いで登録(一番安いプラン2,980円/月)。

とりあえず基本構文の習得のためのセクション、「Pythonはじめの一歩」(9単元)は修了。

f:id:hizatama:20170813222619p:plain

 基本の構文ではさすがに躓くことはなかったけど、穴埋めコーディングでは無いのでコーディング量が多いし、同じような処理を何度も書かされる。

だから覚えられるのだろうけど、久々に数時間ぶっ続けでタイピングしていたのでめちゃくちゃ疲れた。

 

Pythonの基本構文レベルで魅力に感じたのは

  • 切り捨て除算の演算子「//」
  • 辞書のget(key, default)

このくらい。

切り捨て除算の演算子は、PHPだとコメントアウトになっちゃうから採用できないのか、floor(x / y)でやってる(はずだったけど、改めて公式ドキュメントを見てみたらintdivとかいう関数がPHP7で追加されてた。floorでよくないか…?パフォーマンス的に有利?)。

辞書のgetメソッドはPHP7以降ならNull合体演算子($hoge ?? 'fuga')があるけど、オブジェクト指向的な書き方が出来た方が自分は(JSもやってるから統一できると)わかりやすくてよい。

でもPHPで配列(連想配列)はオブジェクトでなくプリミティブ型扱いだからarray.get('key', 'default')なんて書けるようにはならないだろうな。ただでさえ言語内での統一感無いのにこれ以上業を背負ってどうすんだって話だもんなぁ。

 

逆にちょっと辛かったのはキャスト。PHPの自動キャストに慣れてるから「str( value )」のキャストが煩わしく感じるし、たまに忘れてエラーになることがあった。型のありがたみは大規模になればなるほど高まってくので慣れるしかあるまい。

ただ、「"{}".format(var)」とすると自動的にキャストしてくれるのかな?単元内では説明なかった(と思う)けど、他の人の解答で使われていたので使ってみようかな。

 

 

今後もちゃちゃっと進める予定だけど、実践的なWebAPI、データ集計処理、メール一括送信、スクレイピングはまだ準備中。短期間で終わらせる予定なので、残念だけど準備中の単元は受けられそうにないかな。

 

--- 

ついでに「はじめの総合演習 > 自動販売機の売上げ集計」の二問目、問題文に誤植があった。集計するのは個数じゃなくて金額だった。出力例に書かれた値が100倍くらい離れてたからわかったけど、同じような値だったら3万時間は悩んでた。

まぁ、間違えて何かペナルティがあるわけでもないから積極的には連絡しないけど、もしPyQの中の人が見てたら修正お願いします。

 

最近は無料で質の高いサービスもあるから、有料サービスでちょっとしたミスに遭遇すると「なんでお金払ってまでテスト作業してるんだ?」って気分になってしまう。

無料サービスが増えれば増えるほど有料のハードルが上がるから、サービス提供者はつらいだろうなぁ…。日本のお客様様体質だとなおさら。

 

===

夏季休業が終わったらがっつり出来ないから、日々コツコツ積み上げていこう。