Python入門 サンプル集

このサイトは、Python3の基本文法~応用例(数値計算・機械学習・ゲーム制作等)までをサンプルコード付きで入門者向けにまとめています。

Pythonとは

Pythonは欧米で人気なスクリプト言語です。
初心者にも扱いやすい言語で短くて読みやすいコードを書くことが出来ます。
ライブラリも豊富で、数値計算や統計処理をする場合にも有効な言語です。
また、ラズベリーパイなどのIoT機器を使えば電子工作や組み込み系にも使えます。
本記事では、Pythonのバージョン3を中心に入門者向けに基礎から紹介します。

参考記事
1 【Python】主な特徴(メリット・デメリット)

環境構築、プログラムの作成・実行

まずはじめに、「環境構築」や「プログラムの作成・実行手順」などについて以下に整理しました。

項目
Python環境構築 Windows環境・・・Python環境を構築する方法
②Linux環境(Ubuntu, Rasbian)・・・標準搭載されているので環境構築不要
③Mac環境・・・(´∀`) <・・・
書き方 HelloWorld, 基本構造
コメント コメント, 日本語コメント
日本語の扱い方 print関数で日本語出力, 日本語の扱い方(Python2のみ)
その他 バージョン2と3の違い, C言語との記法比較(Cプログラマ向け)

変数(数値型・文字列型)

文字コードや変数の基本的な扱い方について整理しました。

項目
変数 文字列, 整数型(int), 長整数型(Python2のみ), 実数型(float), 論理型(bool), 整数型に変換
文字列処理 連結, 文字列へ変換, 分割, 先頭末尾の削除, 正規表現, 置換, 文字列検索, 大文字⇔小文字, 数値→文字列, 文字列→数値, 文字列のハッシュ化

構造化プログラミング、関数、オブジェクト指向、標準入出力、ファイル処理

構造化プログラミング、関数、オブジェクト指向の基礎について以下に整理しました。

構造化プログラミング
条件分岐 if文, elif文
繰り返し for文, for文+ range関数, for文+in演算子, for文+enumerate関数, while文
他の文 continue文(スキップ), break文(繰り返し終了), pass文(何もしない), del文(変数・オブジェクトの削除), try-except文(例外処理), import文(ライブラリ読込), with文(終了処理の省略)
関数の使い方
関数 関数・引数の定義, 引数定義の違い(値・配列)
特殊関数 exec関数, iter・next関数(イテレータ)
オブジェクト指向(中~大規模なプログラム作成に必要)
概略 オブジェクト指向とは, 利点欠点, クラス・インスタンス, メソッド・プロパティ, 変数
基本 クラス定義, インスタンス生成, インスタンスの個数
インスタンス変数 生成, 値取得, 代入, 追加, 値を渡す(初期化)
クラス変数 クラス変数生成, 値取得, 代入, 追加,
メソッド メソッド定義, クラスメソッド定義, 初期化メソッド(コンストラクタ), デストラクタ
クラス継承 クラス継承
まとめ Pythonでオブジェクト指向プログラミング
標準入出力の基礎
標準出力 改行あり, 改行なし
標準入力 全般, 複数行(input), 複数行(readlines)
ファイル処理の基礎
テキストファイル ファイル読込, タブ区切りで読込, ファイル書込, 文字コード指定書込
圧縮・解凍 ファイルのZIP圧縮
ファイルパス 拡張子取得, 存在判定, ファイル判定, フォルダ判定
CSV 書込(1行), 書込(複数行), データ更新
XML xml解析
ライブラリ csv

リスト、タプル、辞書、配列(NumPy)

Pythonでは、大量のデータを格納・操作するためのオブジェクトとして、「リスト」「タプル」「辞書」型の3種類が用意されています。
また、外部ライブラリでは、配列に相当するものとして、NumPy型オブジェクトがあります。
それぞれの違いや基本操作について以下に整理しました。

項目
概要 リスト・タプル・辞書・配列の違い
リスト リストの使い方, 要素取得, 末尾の要素取得, スライスで要素取得, 末尾に要素追加, 任意の場所に要素追加, 要素の削除, リストの要素確認, in演算子, インデックス取得, 要素を順に取得, 要素+インデックスを順に取得, map関数, filter関数
タプル 使い方, 連結, 繰り返し, 要素取得, 部分取得, 要素数取得, リスト→タプル
辞書 使い方, 値取得, 要素数取得, 連結, データ追加, 代入, 要素削除(del, pop), 全要素削除, キーの存在確認, 全てのキー・値取得, タプル・リストに変換
配列 NumPyの使い方まとめ

数値計算、統計処理、機械学習、画像処理など

Pythonによる数値計算について整理しました。
大量のデータを扱ったり本格的な数値計算をする場合は、用途に応じてライブラリを使います。

数値計算の基礎
基本 四捨五入, 絶対値, べき乗, 平方根, exp, log(底10), log(底e), ラジアン→度, 度→ラジアン
三角関数 正弦(sin), 余弦(cos), 正接(tan), 逆正弦(asin), 逆余弦(acos), 逆正接(atan)
統計量 最大値, 最小値, 合計値, 平均値
乱数 乱数, 整数乱数, 実数乱数, 配列シャッフル, 配列要素のランダム抽出
解の算出 2分法, ニュートン法
微分方程式 オイラー法, 修正オイラー法, ルンゲクッタ法

大量のデータを扱ったり、専門性の高い処理を実装する場合は外部ライブラリを積極的に活用しましょう。
数ある数値計算ライブラリの中で最もスタンダードなのは「NumPy」です。

数値計算ライブラリの基礎
数値計算 NumPy(matlab風), SciPy(NumPyの拡張),Pandas(R言語風), SymPy(matlab風の記号演算), NetCDF4
画像処理 OpenCV, Scikit-image, Pillow
機械学習 Scikit-learn, Chaiper(ディープラーニング), Theano 、Caffe、TensorFlow
自然言語処理 NLTK
トピックモデル gensim
制御工学 python-control(matlab風)
シミュレーション SimPy, PyODE (物理演算)
グラフ作成 Matplotlib(matlab、gnuplot風), seaborn
その他 Basemap(地図)
分野別 機械学習, 画像処理, 音声信号処理, 制御工学, ロボット工学, 数値計算, 株価予測, ビットコイン分析, 物理シミュレーション

ゲーム制作、システム、ネットワーク、Webサーバー・CGI

Pythonを用いた「ゲーム制作」「システム」「ネットワーク」「Webサーバー・CGI」について整理しました。

ゲームプログラミング
Pygame ブロック崩し, 卓球ゲーム(PONG)
ライブラリ PyGame, PyOpenGL(グラフィックス)
まとめ Pythonでゲームプログラミング
システム関連
自作モジュール if name == ‘main’: の意味・使い方, 自作モジュールの読み込み
日時 現在日付(年月日), 現在時間(時分秒ミリ秒), 日付の増減, 1年分の日付, うるう年の判定・回数カウント
応用 処理時間の測定
ネットワーク関連
HTML解析 HTML取得, HTML取得(日本語), User-Agent設定, HTML解析まとめ
情報取得 ローカルIP, グローバルIP, ホスト名
ソケット通信 1対1チャット(TCP/IP)
ブラウザ操作 既定ブラウザでURL開く, 任意ブラウザでURL開く
FTPサーバー ファイルアップロード
まとめ Pythonでネットワークプログラミング入門
Webサーバー・CGI関連
XAMPP 実行方法, HTML出力, DB作成, テーブル作成, CSV読込, CSV読込(日本語), パスワード設定, 設定後エラー
MySQL ライブラリ一覧, mysql-connector導入, 接続・切断, データ取得, データ追加, データ更新, データ削除, まとめ
SQLite DB接続, テーブル作成, データ追加, データ追加(複数行), データ取得, データ更新, データ削除, まとめ

電子工作(ラズベリーパイ・Arduino)、便利ツール

電子工作(ラズベリーパイ・Arduino)への応用や、役に立つツールやサイトについて整理しました。

電子工作への応用
ラズパイ ラズベリーパイ+Pythonで電子工作入門
Arduino Arduinoを遠隔操作
便利なツールやサイトなど
コーディング規約 コーディング規約とは, 命名規則(PEP-8)
便利ツール Try Jupyter, SageMathCloud, ideone, Python3→exe変換, Jupyter Notebook, Github:Python

シェア&フォローお願いします!

関連記事