Python入門 サンプル集

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

Pythonとは

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

Python環境の構築

環境構築の概要

Windons上でPython環境を構築するやり方は、主に「公式インストーラ」と「Pythonパッケージ」を使う方法があります。
また、Pythonパッケージは、「WinPython」や「Anaconda」などいくつか種類があります。
Python自体にもバージョン2と3の2種類があります。

※UbuntuやRaspbian OSはデフォルトでPyhonがインストール済です。

WindowsでPython

WindowsでPythonを始める場合は「WinPython」や「Anaconda(Miniconda)」などのPythonパッケージを使うのがお勧めです。理由は以下の2点。

理由① Pythonだけでなく「主要な外部ライブラリ」や「統合開発環境」も一括導入できて楽
※公式配布インストーラだと逐一自分で入れる必要があり大変(初心者はここでよく詰まります)

理由② ポータブル化されており、USBで持ち運び可能(WinPythonの場合)

Pythonの環境構築に関する記事を以下に整理しました。
管理人はポータブルな「WinPythonによる構築方法」がオススメです。

項目
バージョン Python2と3の違い
環境構築法・使い方①
(Pythonパッケージ)
WinPython編, Anaconda編, Python(x, y)編,
環境構築法・使い方②
(公式インストーラ)
Python2.7編, Python3.5編

環境構築に詰まった…

環境構築がうまく行かず、萎えてしまったら、ブラウザ上で使える実行環境「Try Jupyter」や「ideone.com」を試してみましょう。
ソフトのダウンロード、インストール、設定などは一切不要。firefoxやchromeなどのブラウザでPythonプログラムを実行できます。

プログラムの書き方

プログラムの書き方について整理しました。

項目
作成・実行 WinPython編, Anaconda編, 公式インストーラ編
書き方 HelloWorld, 基本構造
コメント コメント, 日本語コメント
日本語の扱い方 print関数で日本語出力, 日本語の扱い方(Python2のみ)
その他 C言語との記法比較(Cプログラマ向け)

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

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

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

構造化プログラミング

構造化プログラミングについて整理しました。
他の言語と少し違うところはfor文です。

項目
条件分岐 if文, elif文
繰り返し for文, for文+ range関数, for文+in演算子, for文+enumerate関数, while文
処理スキップ continue文
関数 関数定義, 引数定義, 引数定義の違い(値・配列)

リスト・タプル・辞書・配列

Pythonには、「リスト」「タプル」「辞書」型の3種類あります。
また、配列に相当するものとして、NumPy型があります。
それぞれの違いと基本操作について整理しました。

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

標準入出力

標準入出力について整理しました。

項目
標準出力 改行あり, 改行なし
標準入力 全般, 複数行(input), 複数行(readlines)

ファイル処理

ファイル処理について整理しました。

項目
テキストファイル ファイル読込, タブ区切りで読込, ファイル書込, 文字コード指定書込
圧縮・解凍 ファイルのZIP圧縮
ファイルパス 拡張子取得, 存在判定, ファイル判定, フォルダ判定
CSV 書込(1行), 書込(複数行), データ更新
XML xml解析
ライブラリ csv

数値計算(統計処理・機械学習・画像処理など)

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

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

数値計算ライブラリ

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

項目
数値計算 NumPy(matlab風), SciPy(NumPyの拡張),Pandas(R言語風), SymPy(matlab風の記号演算)
物理演算 PyODE (ODEのPython版)
画像処理 OpenCV, Scikit-image
機械学習 Scikit-learn, Chaiper(ディープラーニング), gensim(トピック抽出)
制御工学 python-control(matlab風)
グラフ作成 Matplotlib(matlab、gnuplot風)
分野別 機械学習, 画像処理, 音声信号処理, 制御工学, ロボット工学, 数値計算, 株価予測, ビットコイン分析, 物理シミュレーション

オブジェクト指向

オブジェクト指向の基本について整理しました。
ライブラリを自作したりゲームアプリなど大規模なプログラムを作成する場合に必要となります。

項目
概略 オブジェクト指向とは, 利点欠点, クラス・インスタンス, メソッド・プロパティ, 変数
基本 クラス定義, インスタンス生成, インスタンスの個数
インスタンス変数 生成, 値取得, 代入, 追加, 値を渡す(初期化)
クラス変数 クラス変数生成, 値取得, 代入, 追加,
メソッド メソッド定義, クラスメソッド定義, 初期化メソッド(コンストラクタ), デストラクタ
クラス継承 クラス継承
まとめ Pythonでオブジェクト指向プログラミング

ゲーム

Pythonを用いたゲームプログラミングについて整理しました。

項目
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

Webサーバー・CGI関連の操作方法について整理しました。

項目
XAMPP 実行方法, HTML出力, DB作成, テーブル作成, CSV読込, CSV読込(日本語), パスワード設定, 設定後エラー
MySQL ライブラリ一覧, mysql-connector導入, 接続・切断, データ取得, データ追加, データ更新, データ削除, まとめ
SQLite DB接続, テーブル作成, データ追加, データ追加(複数行), データ取得, データ更新, データ削除, まとめ

電子工作・組み込み(ラズベリーパイ、Arduino等)

電子工作や組み込み関連のTIPSについて整理しました。

項目
電子工作 ラズベリーパイ+Pythonで電子工作入門, Arduinoを遠隔操作

その他

その他、Pythonを使う上で役に立つツールなどについて整理しました。

項目
コーディング規約 コーディング規約とは, 命名規則(PEP-8)
便利ツール Try Jupyter, SageMathCloud, ideone, Python3→exe変換, Jupyter Notebook, Github:Python
入門記事 Python, C言語, Java, C#, Javascript, PHP, VBAマクロ, Processing

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