エクセルの神髄
Python入門:プログラミング事始め

Pythonの初心者向け入門解説の目次、人気のプログラミング言語Python
最終更新日:2021-05-07

Python入門:プログラミング事始め


Python入門 プログラミング事始め

Pythonはプログラミング言語です。
近年非常に人気が高く注目の言語です。


この「Python入門」シリーズでは、Windows環境でPythonを使っていきます。
当初の目標としては、
・CSVを読み込み編集してExcelファイルに書き込む。
・WEBスクレイピングで情報収集しExcelファイルに書き込む。
このあたりまで自在にできるようになることを当初の目標として記事を書き進めていきます。

これらは、もちろんVBAで出来ます。
VBAでのCSVの扱い方まとめ
・本サイトにあるCSV関連記事一覧 ・CSVの読込方法 ・CSVの読み込み方法(改) ・CSVの読み込み方法(改の改) ・CSVの読み込み方法(ジャグ配列) ・CSVの読み込み方法(ジャグ配列)(改) ・CSVの出力(書き出し)方法 ・UTF-8でCSVの読み書き(ADODB.Stream) ・ADOでCSVの読み込み(SQL)
VBAのスクレイピングを簡単楽にしてくれるSelenium
・SeleniumBasicのインストール ・VBEでの参照設定 ・WEBサイトを表示してみましょう ・Seleniumの基本的な使い方(株価情報を取得してみる) ・色々なパターンでのseleniumの使い方 ・色々組み合わせて目的の画面にたどり着きます ・elementをコレクションで取得する ・新規ページが開かれる場合 ・上手くいかない特殊な場合の対処方法 ・Seleniumの実践例例 ・最後に

本サイトのメインコンテンツであるExcel&VBAの延長としてPythonを使っていこうという主旨になります。
したがって、VBAまたは他言語を多少なりともやったことのある人をメインターゲットとして書き進めます。
ただし、それらを全くやったことのない人でも困る事のないように出来るだけ詳しく記載していくつもりでいます。


Pythonでできることは多岐に及びます。
WEBサービス、WEBアプリケーション、スマホアプリ、機械学習
シリーズ開始の現時点では、このような事までは想定していません。
先々、そのあたりまで書いていけたら良いなーとは思ってはいますが。

ただし、あまり面白くないかもしれませんが、最初はプログラミング言語としての文法解説から始めます。
Pythonで何をやるにしても、プログラミング言語としてのPythonを習得するしかありません。
プログラミング言語を習得するには、基本文法を熟知し、実戦経験を積むしかありません。

この「Python入門」は、
Python開発のスタートラインに立ち、階段をいくつか登って最初の踊り場に出て少し景色が違って見えるあたりまで読者の皆さんと進んでいけることを願ってシリーズを開始します。


Pythonとは

Pythonは人気のプログラミング言語ですし、ここを訪れている人に今更説明する必要があるとは思えませんが、、、
2020年春期から基本情報技術者試験の午後の選択できるプログラミング言語にPythonが新たに採用されています。

Pythonはインタープリタ型の汎用プログラミング言語です。
・WEBサービス、WEBアプリケーション
・WEBスクレイピング
・スマホアプリ
・デスクトップアプリ
・機械学習、ディープラーニング
・組み込みアプリケーション
とても汎用的な言語で、非常に沢山の用途として使われているプログラミング言語です。

インタプリタとスクリプト言語
インタプリタは、1命令ずつ解釈して実行するプログラムを指します。
スクリプトは、比較的簡易な言語で書かれたプログラムを指します。

両者は全く別の概念です。
厳格な定義もなく、あくまで概念の話です。

ほぼ同様に使われることが多くあります。
スクリプト言語がインタプリタで実行されることが多いからだと思われます。

Pythonのコードはスクリプトと呼ばれます。
Pythonのコードを書いたファイルの拡張子は「.py」です。
この拡張子「.py」のファイルをスクリプトファイルと呼びます。
本シリーズでは、Pythonのコード自体をスクリプトと呼んだり、特に区別せずに使用します。


Pythonの特徴

Pythonの特徴の説明として、
・文法がシンプルで書きやすく読みやすい
・少ないコード量で簡単にプログラムが作成できる
・実用的なライブラリが豊富
このような説明が良くされています。

また、言語的特徴として、
・動的型付き
・インデントによるブロック
・オブジェクト指向
このような事も書かれたりしています。

いずれも正しいのでしょうが、そもそも特徴というのは、あくまで他と比べた時はという事です。
ここを誤解しない方が良いでしょう。
例えば、
英語は日本語よりシンプルだと言われても、だから何?
動的型付きの反対は静的型付きですが、どっちが良いの?

Pythonは初心者が始めやすいという特徴はあると思います。
ですが、どのような言語であっても習得するには、
制御文、関数、データ構造、これらを一つずつ学んでいくしかありません。

正式な言語仕様については以下を参照してください。

PEPとは

Pythonには拡張提案の仕組みがあり、その際に議論した結果がまとめられた資料があります。

PEP一覧: PEP 0 -- Index of Python Enhancement Proposals (PEPs)

全てを読むのは困難ですし、専門家でもない限り必要もないでしょう。
この中で是非目を通しておいていただきたいものとして、以下2つリンクしておきます。

Python設計の指針となる原則が簡潔にまとめられた20の格言です。
PEP 20 -- The Zen of Python
しかし、ここには19の格言しか書かれていません、、、

Pythonコードのスタイルガイドです。
PEP 8 -- Style Guide for Python Code
はじめに - pep8-ja 1.0 ドキュメント
基本的にはこれに準拠するようにするべきでしょう。
ただし、なかなか全てこの通りには書けないものですし、そこまでこだわる必要性もありません。
この中にも書かれている通り、
「一貫性にこだわりすぎるのは、狭い心の現れである」


Python入門の目次

第1回.Pythonの統合開発環境をインストール
・PythonのIDE(統合開発環境)について ・Visual Studio Community(2019)のインストール ・Visual StudioでPythonのコードを書いて動かしてみましょう ・Pythonのバージョンについて ・Python3.8のインストール ・IDLE(Python付属の統合開発環境)を使ってみましょう ・コマンドブロンプトで実行してみましょう ・Power Shellで実行してみましょう
第2回.対話モードの使い方とヘルプ
・IDLEでの対話モードの使い方 ・Visual Studioでの対話モードの使い方 ・ヘルプの使い方
第3回.変数とデータ型
・変数とは ・動的型付けと静的型付け ・Pythonで変数を使うには ・変数名の規則 ・変数のデータ型 ・データ型の確認方法
第4回.数値計算(四則演算)
・算術演算子 ・int型とfloat型 ・float型における小数点の問題 ・complex型:Visual Studioのインテリセンスについて
第5回.if文とインデントによるブロック
・インデントによるプロック ・行の継続 ・コメント ・if文の構文 ・比較演算子 ・論理演算子 ・真の判定、偽の判定 ・pass文
第6回.for文とイテラブルオブジェクト
・for文の構文 ・イテラブルオブジェクトとは ・range()関数 ・str型 ・list型/tuple型 ・enumerate()関数 ・break文とelse節 ・continue文
第7回.while文とデバッグ(ステップイン)
・while文の構文 ・whileの例文 ・IDLEのデバッグ ・Visual Studioのデバッグ
第8回.文字列操作(str型)
・文字列リテラル ・文字列演算子 ・文字列のインデックスとスライス ・format()関数 ・format()メソッド ・f-string(フォーマット済み文字列リテラル) ・strのメソッド
第9回.リスト(list型、配列)
・リスト(list型)とは ・リスト演算子 ・リストのインデックスとスライス ・スライスでリストの値を変更 ・スライスでリストの要素を追加 ・del文でリストの要素を削除 ・リストのアンパック ・for文とリスト ・while文とリスト ・リストに要素を追加するメソッド:append , insert , extend ・リストの要素を削除するメソッド:remove , pop , clear ・リストの値を調べるメソッド:index , count ・リストを並べ替えるメソッド:sort , reverse , sorted関数 ・リストをコピーするメソッド:copy
第10回.タプル(tuple型、イミュータブル)
・タプル(tuple型)とは ・ミュータブルとイミュータブル ・タプル演算子 ・list()関数とtuple()関数 ・タプルのインデックスとスライス ・タプルのアンパック ・for文とタプル ・while文とタプル ・tupleのメソッド ・タプルの並べ替え(sorted関数)
第11回.辞書(dict型)
・辞書(dict型)とは ・辞書のいろいろな作成方法 ・辞書にキーが存在するかの確認 ・辞書からキー指定で値を取得 ・辞書への追加/変更 ・辞書から削除 ・辞書ビューオブジェクトとfor文 ・辞書(dict型)のコピー
第12回.組み込み関数一覧
Pythonには数多くの関数と型が組み込まれており、様々な処理を行うことができます。組み込み関数は、Python入門の中でもすでにいくつか使用していますし、これからも頻繁に使用していきます。全部で69個あります。
第13回.関数の定義(def文)と引数
・関数の呼び出し ・関数オブジェクト ・いろいろな引数指定 ・関数のDocstring
第14回.関数内関数(関数のネスト)とスコープ
・関数内関数(関数のネスト) ・スコープとは ・ローカルスコープ(Local scope) ・エンクロージングスコープ(Enclosing scope) ・グローバルスコープ(Global Scope) ・ビルトインスコープ(Built-in scope) ・ミュータブルのコンテナオブジェクトの値は書き換えられる
第15回.lambda(ラムダ式、無名関数)と三項演算子
・lambda(ラムダ式)の基本 ・lambdaの使い方:print()関数 ・lambdaの使い方:sorted()関数 ・三項演算子:lambdaで条件分岐 ・filter()関数とlambda(ラムダ式) ・map()関数とlambda(ラムダ式)
第16回.Pythonの引数は参照渡しだが・・・
・参照渡しと値渡し ・これまでの復習:前提知識 ・Pythonはすべて参照渡しなのですが・・・
第17回.リスト内包表記
・リスト内包表記の基本 ・リスト内包表記の条件分岐 ・リスト内包表記の複数for文 ・リスト内包表記のネスト ・zip()関数とリスト内包表記 ・enumerate()関数とリスト内包表記 ・その他の内包表記
第18回.例外処理(try文)とexception一覧
・例外処理とは ・try文の文法 ・try文の使用例 ・組み込み例外一覧
第19回.import文(パッケージ・モジュールのインポート)
・Pythonの用語 ・import文の構文 ・標準ライブラリのインポート ・自作モジュールのインポート
第20回.フォルダとファイルの一覧を取得
・出力結果のサンプルデータについて ・os.path,os.listdirの使用例 ・glob.globの使用例 ・pathlibのプロパティ・メソッド一覧 ・pathlib.Pathの使用例
第21回.CSV読み込みとopen()関数とwith文
・open()関数 ・with文 ・csvの読み込み ・tsvの読み込み
第22回.CSV読み書き(csvモジュール)
・csvモジュールの仕様 ・dialectについて ・**fmtparamsについて ・CSV読み込みの基本 ・CSV書き込みの基本 ・フォルダ内の複数CSVを1つのCSVにまとめる
第23回.pipコマンド(外部ライブラリのインストール)
・pipとは ・pipのバージョン ・pipコマンド一覧 ・外部ライブラリ ・pipコマンド使用例 ・インストールされたライブラリの場所を確認 ・openpyxlが使えるか確認
第24回.エクセルを操作する(openpyxl)
・openpyxlのインストール ・公式リファレンス ・ブックの操作 ・シートの操作 ・セルの操作 ・表示形式・フォント・罫線・列幅・行高 ・CSVを読み込んでエクセルで出力
第25回.エクセルを操作する(pywin32:win32com)
・pywin32のインストール ・公式URL ・pywin32:win32comのエクセル操作サンプル ・エクセルのマクロを起動する ・pywin32の問題点
第26回.WEBスクレイピング(selenium)
・seleniumについて ・seleniumのインストール ・WEBサイトを表示してみましょう ・Seleniumの基本的な使い方(株価情報を取得してみる) ・色々なパターンでのseleniumの使い方 ・色々組み合わせて目的の画面にたどり着きます ・elementをコレクションで取得する ・新規ページが開かれる場合 ・上手くいかない特殊な場合の対処方法


参考書籍

このPython入門を書くにあたって参考にした書籍
複数の書籍およびWEBサイトを参考にしていますが、

Python実践入門 ── 言語の力を引き出し、開発効率を高める
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

これらの書籍を最も良く参考にさせてもらいました。




新着記事NEW ・・・新着記事一覧を見る

VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)
スピらない スピル数式 スピらせる|エクセル雑感(2023-12-06)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ