技術はメシのタネ

底辺プログラマで技術の向上を目指しているけれどやりたい事が無くて困っている

python3修行の開始

退屈なことはPythonにやらせよう

本書を読む理由

 曲がりなりにもITスキルを有し、ITエンジニアを名乗り、日々プログラミングしている人間が、何故に本書を読むのか。
 それはまあ、ブログタイトルの通りである。
 「底辺プログラマで技術の向上を目指しているけれどやりたい事が無くて困っている」。
 どちらかというと、pythonそのものではなく、自動化できる処理にどのようなものがあるのかが知りたくて、本書を手に取った次第である。


python力……たったの5か……ゴミめ……

 でぇじょぶだ、Cなら30くらいはある!
 (読者たる私のプログラミング能力を問われた気がした)
 python自体に関しては、多少入門書や入門サイトを眺めて、文法をコンソール上で確認した程度。
 知らないことの方が多い。


訳者まえがき

 なんか意識高い系なこと書いてあんな……。

 なん・・・だと・・・?
 本書で紹介しているモジュールを使って、Word、Excelからデータを取り出す……?
 そんなことが!?
 (先ほどのゆで汁!?でお馴染みの全部捨てた女の子の画像を思い出して頂きたい)

なお、本書には、クラスや、ジェネレータ、リスト内包表記といったPythonの高度な機能の説明はありません。

 この辺のことについてはこれらで確認しようと思っている。

基礎Python 基礎シリーズ

基礎Python 基礎シリーズ


まえがき

 本書を読むと、次のような作業を自動化できるらしい。

  • 何千個ものファイルを移動し、名前を変え、フォルダに分ける。
    →.cmdとか.shでバッチ処理くらいは作れると思う。
  • オンラインのフォーム(申し込み画面)を、キーボードを使わずに入力する。
    →ちょろめを始めとして、最近のwebブラウザならみんなやってくれるんじゃないの?
  • Webサイトが更新されたら、自動的にファイルをダウンロードしたりテキストをコピーする。
    RSSを受け取るところまでしか想像できない。これは有益そう。
  • Excelスプレッドシートを更新・整形する
    →今はサクラエディタ正規表現で変換したりしてるので、これは助かるかも。
  • 電子メールをチェックして、事前に用意しておいた返事を送信する
    →なんか、インシデントが怖ぇな……。

推奨のコーディングスタイルに反することがありますが(例えば、グローバル変数の使用)、その代わりコードが簡単で習得しやすくなっています。

 ふーん、推奨のコーディングスタイルとかあるのか。
 あとで調べてみよう。

 pythonのプログラミング環境については、`Visual Studio Code`で準備した。
 ついでなので、`pylint`も導入してみた。

 あ、本書のすべてのプログラムは`python3`で動作するように書かれているそうだ。


第Ⅰ部 Pythonプログラミングの基礎

1章 Python入門

  • 1.1 式をインタラクティブシェルに入力する
  • 1.2 整数、浮動小数点数、文字列型
  • 1.3 文字列の連結と複製
  • 1.4 変数に値を格納する
    • 1.4.1 代入文
    • 1.4.2 変数名
      Pythonの公式コーディングスタイルPEP8
       変数名はアンダースコアでつなぐスタイルが望ましいのか。

 この辺のことは [これ](Dive Into Python 3 日本語版) を読んだ時に一通り確認した。

  • 1.5 最初のプログラム

 本書記載の最初のプログラム、`hello.py`を`pylint`にかけてみると、スコアは4.44 / 10であった。
 原文ママをここに転載するのは気が引けるので、後で`pylint`スコアを高めたものを掲載。

hello.py

"""このプログラムは挨拶を表示して名前と年齢を尋ねる"""
# -*- coding: utf-8 -*-

print('Hello world!')  # ❷
print('What is your name?') # 名前を尋ねる

MY_NAME = input()  # ❸

print('It is good to meet you, ' + MY_NAME)  # ❹
print('The length of your name is:')  # 名前の長さを表示 ❺
print(len(MY_NAME))
print('What is your age?') # 年齢を尋ねる ❻

MY_AGE = input()

print('You will be ' + str(int(MY_AGE) + 1) + ' in a year.') # 来年の年齢を表示

 あまり修正する意味を感じないな……。




 (以下、随時追加更新していく予定。)




 (余談。本文中に下記への言及がまだ出てきてないけど、これからなのかな?)

github.com

Windowsのメモリダンプを解析するまで

これを連発されたので、イベントビューアから原因を探ろうとしたら、再起動時のバグチェックでダンプ残したって言うので見ようと思ったら、サクラエディタじゃあ見られなかったのね。
まあそこらへんは各自ググってもらうとして、簡単に言うと、VisualStudioとデバッグ閲覧用のソフト、2つをダウンロードする必要があった。

マシンの設定のせいかどうかはよくわからないんだけども、VisualStudioも閲覧ソフトも、インストーラでインストール完了、って言いながら、実際にはもう一回インストーラ起動して他にも必要なファイルをダウンロードさせないといけないという謎手順はどこかに誘導を書いておいて欲しかったな。



ダンプを閲覧するのに必要なツールがwindbg.exeって言うんだけど、実は管理者権限で実行して、おまけにダンプファイルのドラッグアンドドロップじゃあ解析始めない、っていうのはググってみた結果の中にはどこにも書いてなかったと思う。
のでメモ。
管理者権限無しで実行してダンプファイルをドラッグアンドドロップすると、読み込めませんってダイアログが表示される。
管理者権限で実行してドラッグアンドドロップすると、今度はダンプファイルが開かない。
ファイルメニューのOpen Crash DumpからMEMORY.DUMPを選ばないと開けないようになっていた。
ちなみにこれはWinDbg 10.0.14321.1024 AMD64の話である。



なお、ようやくダンプ解析の準備が整ったところで、累積的な更新プログラムによるアップデートが入ったので、またしばらくは様子見することになった。



Windows機の眠りを妨げしモノ

コマンドプロンプトを管理者権限で起動する

C;\WINDOWS\system32>powercfg -waketimers

次にスリープを解除しようとするやつが分かる。

C;\WINDOWS\system32>powercfg -lastwake

前回スリープを解除した輩が分かる。