PythonプログラミングTips集(蛇使いのための備忘録)

プログラミング言語 “Python“(パイソン)は、今やIT・AI産業において最も使用されていると言っても過言ではない世界で最も有名な言語の一つである。このページではPython(3系)によるコーディングの基本から、ちょっとした応用までの内容について備忘録程度にまとめてある。内容は適宜追加していく予定だが、他人に優しい解説が掲載されているとは限らないので予めご留意願いたい。

なお、当サイトでは個別の質問対応には応じられないので、適宜、他サイトの専用掲示板などをご活用下さい。

(管理人:blocks)

● Python3 Tips集:目次 ●

 Pythonことはじめ

§ Pythonことはじめ
・そもそも「Python」って?
・Pythonのコーディング規約「PEP 8」
・Pythonは計算が苦手?
・ライブラリのインストール
・開発環境の構築

§(Linux)ローカルにPythonを導入する
・sudo権限が無い場合
・手順①:ソースコードのダウンロード
・手順②:ソースコードからビルドする
・手順③:ローカル環境のPythonのパスを通す

 そもそもsyntax分からん系のTopic

§ if文の書き方
・if 文の例①(if~elif~else)
・if 文の例②(条件が複数のとき/論理演算子)
・比較演算子(==, !=, <=, など…)
・比較するときは変数の型に注意せよ
§ while文の書き方
・while 文の例
・break処理でループを中断する
・break処理で多重ループを抜けるワザ
・比較演算子(==, !=, <=, など…)
・比較するときは変数の型に注意せよ
§ for文の書き方とrange関数の使い方
・for 文の例①(リスト)
・for 文の例②(range関数の使い方)

 出力系のTopic

§ printで出力のformatを指定する
・format関数の基本的な使い方
・%で書式を指定する方法
・「f文字列」の使い方 (Python3.6以降)
§ printで桁合わせ・ゼロ埋め・文字寄せする
・桁合わせ
・ゼロ埋め
・左寄せ・中央寄せ・右寄せ
§ 特殊文字( # とか % とか ” とか)を出力する
・エスケープする
・波括弧(中括弧)を表示する
§ 改行しないでprintする方法
・endを指定する
・sys.stdout.writeを使う
§ 日本語を使う
・文字コードとencode/decode
・図中で日本語フォントを利用する
・Atomエディタ上で日本語を出力する
§ matplotlibでグラフを作成する方法【総まとめ】
・matplotlibの基本と2つの流儀
・色・線種・マーカーの指定
・折れ線&曲線のグラフ
・棒グラフ
・円グラフ
・ヒストグラム
・散布図とカラーバー
・ヒートマップ
・複数の線を表示する
・等高線&濃淡のある等高線
・3Dのグラフを表示する
・複数のグラフを並べる
§ 3Dの曲線を描画する(ローレンツアトラクタの例)
・ローレンツ方程式とは
・ローレンツアトラクタの3D描画
・ラベルに日本語を使う
・連続的にカラーリングする
・平面を透明化&背景色を変える

 演算系のTopic

§ 四則計算と剰余(余り)の計算
・整数値の四則計算
・小数値の四則計算
§ べき乗と平方根・累乗根の計算
・べき乗と平方根・累乗根の計算
・複素数のべき乗計算
§ 実数↔整数の変換
§ 複素数型変数の扱い方
・複素数型変数の四則計算
・実部と虚部、共役複素数を取得する
・複素数型変数の大きさ(abs関数)
・複素数のべき乗計算
§ 記数法の変換(10進数⇔n進数)
・$n$進数から$10$進数へ変換
・$10$進数から$n$進数へ変換
・$n>36$ の場合
§ 階乗・二重階乗の計算
・階乗の計算
・二重階乗の計算
§ 時刻差分の計算
・一般的な時刻の計算
・タイムゾーンを跨ぐ時刻の計算
・UNIX時間の計算

 文字列系のTopic

§ 文字列同士を比較する方法
・文字列を比較する
・配列やリストの比較
・特殊文字を含む文字列
・変数の型にはご注意
§ 文字列の部分一致・検索
・部分一致する文字列の存在を調べる
・部分一致する文字列の個数を調べる
・部分一致する文字列の位置を調べる
§ 数値⇔文字列の型変換
・数値 ⇒ 文字列
・文字列 ⇒ 数値
§ 文字列が数値かどうか判定する方法
・文字列の値の種類を調べる関数
・文字列がどんな数値か判定する方法
§ 文字列を連結・結合する方法
・「+」演算子を使う
・f文字列を使う
・formatメソッドを使う
・printの区切り文字を変更する
§ 文字列の全角英数を半角にする方法
・translate関数を使う

 リスト(配列)系のTopic

§ リストの作成方法
・リストを定義する
・2次元配列(リストのリスト)を定義する
・要素の個数を倍にする(リストの初期化)
・range関数を利用する
§ リストへの要素の追加
・リストに要素を追加する(末尾に追加する)
・リストに要素を挿入する(末尾以外に追加する)
・リスト同士の結合
§ リストの要素数を数える
・len関数でリストの要素数を取得する
・要素のindex(何番目の位置にあるのか)を取得する
§ リストの要素の入れ替え
・1行で入れ替える
・別の変数を経由する
§ リストを丸ごと入れ替える
・n番目以降の要素を全て入れ替える
・スライス(:)を使った別法
§ listとarrayとNumPy配列の違い
・listの要素の型は何でも良い
・arrayはインポートが必要
・arrayは基本的に数値型を要素とする
・listとNumPy配列
§ NumPy配列の演算処理はなぜ速いのか
・listを演算処理に使うデメリット
・NumPy配列(ndarray)は数値計算に特化している
§ 全要素が0の任意長のリストを作成する方法
・全要素が0の任意長のリスト

 ファイル処理系のTopic

§ ファイルの読み書き
・モードを指定してファイルを開く
・ファイルに書き込む
・ファイルの中身を読み込む
§ 文字列や行の要素をsplit関数で取得する方法のまとめ
・split関数で要素を抽出する
・split関数の区切り文字を指定する
・複数の区切り文字を指定するには
・csvファイルを読み込むには
§ csvファイルの処理
・ファイルを開く
・pandasでcsvを読み込む
・数字の3桁区切りの対処法
・csvへの書き込み
・区切り文字の指定
・要素を引用符で囲む

 ユーティリティ系のTopic

§ PDFを結合・分割・回転する方法
・PyPDF2の導入
・PDFを結合する
・PDFを分割する
・PDFを回転する
§ sympyで数式の計算を自動化する
・sympyとは
・シンボルの宣言
 ・複数文字をまとめて宣言する
 ・添え字付き文字を一括で宣言する
 (Sympyで添え字付き文字を一気に定義する方法
 ・ギリシャ文字はLaTeX形式で
 ・数が属する集合を指定する
・数式のLaTeXコマンド出力例
 ・式の簡約化&展開&因数分解
 ・極限計算&微分積分
 ・行列計算
・その他の演算
 ・代入計算
 ・方程式を解く
 ・総和&総乗計算
 ・近似値の表示

 その他のTopic

§ バージョンを確認する方法
・sysモジュールを利用する方法
・コマンドラインで確認する方法
§ プログラムの実行時間を計測する方法
・timeモジュールを利用する方法
§ プログラムを途中で終了させる方法
・sysモジュールを利用する方法
・実行中のプログラムを強制終了する方法
§ 日本語を使う
・文字コードとencode/decode
・図中で日本語フォントを利用する
・Atomエディタ上で日本語を出力する
§ 文字コードの変換まとめ
・文字コードとencode/decode
・文字列⇔アスキーコードの変換
・シーザー暗号を作成する
§ イテラブルオブジェクトとは
・イテラブルオブジェクト
・使用例