「SE業務」カテゴリーアーカイブ

おすすめ書籍:実践力を身につける Pythonの教科書

これまでプログラミング言語といえば、Java一筋で10年くらいSEをやっていて、このままでいいのかと思う今日この頃。。。

次に勉強すべきは何だだろうと思い、調べてみるとPythonが人気みたい↓
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/

インタプリタの言語の経験も少ないし、最近はAI、機械学習、ディープラーニングが脚光を浴びていますが、その分野でもPythonが注目されている模様。各社が公開するAIのAPIサービスもPythonのSDKは公開しているので、Pythonを勉強することにした。

そして、購入したのがこの本。結果的には、満足。

実践力を身につける Pythonの教科書

この本のいいところは、Pythonの基礎的なことを網羅していることに加えて、最近はやりの機械学習に触れていること。またユニットテストなどの実践的な内容が含まれていることです。

応用的なチャプターは「読み飛ばしていいよ」のマークがあるので、プログラミング初心者のことを考えているなと思いました。難しくて手が止まると勉強自体やめてしまうこともあるので。

【目次】
Chapter 1 Pythonのインストールとプログラムの実行
Chapter 1-1プログラミングや Pythonについて
Chapter 1-2 Pythonのインストール
Chapter 1-3 Pythonの対話モードについて
Chapter 1-4 Python開発環境について
Chapter 1-5 エディタで書いたスクリプトを実行しよう

Chapter 2 はじめの一歩 .基本的な文法を学ぼう
Chapter 2-1 電卓より便利な Pytyon
Chapter 2-2 変数について
Chapter 2-3 文字列について
Chapter 2-4 ユーザーから入力を得る方法
Chapter 2-5 制御構文(1)条件分岐について
Chapter 2-6 制御構文(2)繰り返しについて

Chapter 3 リストや関数について - 便利な仕組みを知っておこう
Chapter 3-1 リストについて
Chapter 3-2 辞書型について
Chapter 3-3 文字列の操作
Chapter 3-4 関数の定義と利用
Chapter 3-5 無名関数について
Chapter 3-6 イテレータとジェネレータについて
Chapter 3-7 例外処理について

Chapter 4 モジュールやパッケージを使ってみよう
Chapter 4-1 モジュールについて
Chapter 4-2 PyPIのパッケージを使ってみよう
Chapter 4-3 ファイル処理とwith構文
Chapter 4-4 コマンドラインツールを作ろう
Chapter 4-5 正規表現について

Chapter 5 実践編 ― Pythonを実践で使おう
Chapter 5-1デスクトップアプリを作ってみよう
Chapter 5-2 Webアプリを作ってみよう
Chapter 5-3 Webアプリ/1行チャットを作ろう
Chapter 5-4 機械学習に挑戦してみよう
Chapter 5-5 機械学習でワインの美味しさを判定しよう

Chapter 6 応用編 ― オブジェクト指向について
Chapter 6-1 オブジェクト指向について
Chapter 6-2 継承について
Chapter 6-3 非公開メンバと静的メソッド
Chapter 6-4 クラスの特殊メソッドについて
Chapter 6-5 抽象基底クラスとダック・タイピング
Chapter 6-6 ユニットテストについて
Chapter 6-7 Webアプリで会員制 Webサイトを作ろう

 

本当に出会う参考書によって、勉強のモチベーションが全然が違いますね。

作成したPythonソースはこちら
https://github.com/saimjcf/python_study

 


オフラインでGoogle Chromeでゲームができる

インターネット接続がない状態でGoogle Chromeでちょっとしたゲームができます。

オフラインでChromeでどこかのサイトを閲覧すると↓のような画面になります。この状態でスペースキーをクリックするとゲームがスタートします!

障害物のサボテンや鳥を避けるゲームだけのゲームです。

さすが、Googleさんです。こういう遊び心はとても素晴らしいと思います。

よく、仕事でサーバルームで待機時間が長くネット環境が無いときに、これができるのをたまたま発見して、お世話になりました。


AIX上でシェルで文字列結合すると、文字列が上書きされてしまった

AIXでシェルで単に文字列結合して、標準出力したら、結合されずに上書きされてしまった。

やったこと↓

ファイルから読み取った文字列str1(12345)に、文字列ABCDを結合するので、結果は当然「12345ABCD」となるはず。。。

しかし、実際に動かしてみると、「ABCD5」となり、文字列が結合されず、str1に対して、str2が上書きされる結果となった。

最初はさっぱりわからなかったが、結局はstr1の末尾にCR(キャリッジリターン)が含まれていたからであった。

str1を読み取るファイルの改行コードがCRLFなっていたが、AIXの改行コードはLFのため、文字列を読み取った際に「12345」ではなく「12345<CR>」となっていたのである。CR(キャリッジリターン)はつまり、”カーソルを先頭に戻して”を意味するため、後続の文字列str2(ABCD)は一旦カーソルを先頭に戻した上で、結合されていたのであった。。。

わかってしまえば、大したことではないが一瞬何が起きてるのかさっぱりだった。改行コードはとても大事。