100日後にプロになるワシ6日目(python)
やったこと
pythonチュートリアル
第10章(標準ライブラリミニツアー)
OSへのインターフェース
import os // ファイル操作(ファイル生成、拡張子操作、システム情報や乱数)
import shutil // ディレクトリとファイル操作(コピー・削除)
import glob // パス検索
import sys // コマンドライン引数(コマンドラインで使用したリスト)
import argparse // コマンドラインでの処理を作成できる。
sysモジュール // プログラム終了やエラー出力のリダイレクトができる
import re // 文字列のパターンマッチング(正規表現)
import math // 数学系、コサインやパイなど
import random // 乱数を使用できる
import statistics // 統計的特性(平均、中央値、分散)
from urllib.request import urlopen // インターネットへアクセスできる
import smtplib // メール送信用
from datetime import date // 日付と時刻を扱う
import zlib // データ圧縮 zipfileやgzipなど
import timeit import Timer // パフォーマンス計測
import doctest // docstringにあるテストを実行する
import unittest // 網羅的なテストを別ファイルで管理できる
第11章(標準ライブラリミニツアー2)
reprlib // 深くネストしたコンテナをわかりやすく表示する
pprint // 組み込み型やユーザー定義型をわかりやすく表示する
textwrap // 文章をスクリーン幅ぴったりに収まるように表示する(幅指定可能)
locale // 国によって異なる表記を吸収してくれる(例えば通貨)
string // 文字列テンプレートを作成できる
struct // バイナリデータの操作(ポイントに記載)
threading // スレッド処理(タスクを分割するテクニック)
logging // ログ記録
weakref // 弱参照(ポイントに記載)
array // 配列モジュール
collections // dequeを使い取り出しが高速
bisect // リストのソート操作が簡単
heapq // ヒープを実装するための関数(ポイントに記載)
decimal // 10進数を扱を扱いやすい
ポイント
structは主にセンサーや制御機器への入出力で多く用いられます。なのでIoT機器を制御したりRaspberrypiなどを利用するときに使われます
https://techacademy.jp/magazine/19058
weakref使用例
https://qiita.com/pashango2/items/fb1e5e79589279c5a861
heapq使用例
https://techacademy.jp/magazine/19293
heqpqはヒープソートできる(ヒープ構造のものに有効で高速)
感想
argparseでコマンドライン処理作れるの便利そう
やりようによっては仕事の自動化に使える
例えばgit pushでwebfookと連携してそれをslackで通知とか。
statisticsモジュールは統計値など使用できるので機械学習で使えそう。
weakrefはメモリ解放に必要という認識。
規模が大きくなると、メモリ設計なども必要となるので重要