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

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

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


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

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


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

これらは、もちろんVBAで出来ます。
VBAでのCSVの扱い方まとめ
マクロVBAでCSVの読み書きする方法はいくつもあり、当サイトでも複数のページでそれぞれVBAコードを掲載しています。順次記事を掲載しているので、それぞれどのような特徴があるかが良く分からなくなってしまっているようです。そこで、CSVに関するページをまとめておきました。
VBAのスクレイピングを簡単楽にしてくれるSelenium
VBAでWebスクレイピングする方法としてIE自動操作がありますが、VBA記述が結構面倒になります、もっと簡単にスマートにVBAを書きたいと思ったら…SeleniumBasicを使ってみましょう。SeleniumBasicは、エクセルVBAでのWeb閲覧を自動化することを強力かつ簡単に実現してくれます。

本サイトのメインコンテンツである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はプログラミング言語です。プログラミングする上で、その開発環境の作成は避けて通れません。PythonにはどのようなIDE(統合開発環境)があるか簡単に紹介した後、本シリーズ使用する、VisualStudioCommunityのインストールの説明をします。
第2回.対話モードの使い方とヘルプ
Pythonには対話モード(インタラクティブシェル)でスクリプトを実行する方法があります。前回のインストール編では、Pythonのスクリプトファイル(拡張子.py)を実行しました。対話モードでは、1行入力するごとに実行されていきます。
第3回.変数とデータ型
プログラミングにおいて、変数はとても重要であり、かつ理解が難しいものです。プログラミングを始めて、最初の関門が変数といっても良いかもしれません。変数が使えなければプログラムは書けません、Pythonの変数がどうなっているか、ここでは簡単にさわりだけ説明します。
第4回.数値計算(四則演算)
Pythonは科学技術計算にも使われるプログラミング言語です。科学技術計算向けの豊富なライブラリがあったりする訳ですが、ここでは基本の数値計算について説明します。int型(整数)とfloat型(実数)における四則演算の演算子を中心に説明します。
第5回.if文とインデントによるブロック
プログラムとは処理手順であり、突き詰めれば条件分岐しながら繰り返し処理を行うものです。条件分岐はプログラミング言語に無くてはならない命令になります。Pythonにおける条件分岐はif文になります。他の言語では分岐命令として複数用意されている場合もありますが、Pythonではif文だけになります。
第6回.for文とイテラブルオブジェクト
プログラムとは処理手順であり、突き詰めれば条件分岐しながら繰り返し処理を行うものです。繰り返し処理はプログラミング言語に無くてはならない処理になります。Pythonでの繰り返し処理のうち、今回はfor文の説明になります。
第7回.while文とデバッグ(ステップイン)
プログラムとは処理手順であり、突き詰めれば条件分岐しながら繰り返し処理を行うものです。Pythonでの繰り返し処理のうち、今回はwhile文の説明になります。for文に比べると使用頻度は落ちると思いますが、基本として身に付けておくべきものです。
第8回.文字列操作(str型)
プログラミングでは文字列(テキスト)を扱う事は非常に多く最も基本的な処理と言えます。Pythonでは文字列はstr型になります。このstr型に対する操作として非常に多くの機能がPythonには用意されています。
第9回.リスト(list型、配列)
プログラミングにおいて覚えなければならないものとして配列があります。Pythonの組み込み型に、リスト(list型)とタプル(tuple型)があります。今回はリスト(list型)について解説します。目次 リスト(list型)とは リスト演算子 リストのインデックスとスライス スライスでリストの値を変更 スライスでリストの要素を追加 del文リストの要素を…
第10回.タプル(tuple型、イミュータブル)
プログラミングにおいて覚えなければならないものとして配列があります。Pythonの組み込み型に、リスト(list型)とタプル(tuple型)があります。今回はタプル(tuple型)について解説します。
第11回.辞書(dict型)
「辞書」は、キーと値をセットで登録できるデータ型です。「連想配列、ハッシュ、マップ」このような呼び方をされるものです。多くのプログラミング言語においてデータを高速に取り出す手段として辞書がサポートされています。
第12回.組み込み関数一覧
Pythonには数多くの関数と型が組み込まれており、様々な処理を行うことができます。組み込み関数は、Python入門の中でもすでにいくつか使用していますし、これからも頻繁に使用していきます。全部で69個あります。
第13回.関数の定義(def文)と引数
関数は一連の処理をまとめることで再利用可能にしたものです。プログラム内の小さなプログラムと言えるものです。関数は引数を受け取り(引数が無い場合もあります)一連の処理をした結果を返します。Pythonには組み込み関数がありますが、このような関数を独自に作成することができます。
第14回.関数内関数(関数のネスト)とスコープ
関数は一連の処理をまとめることで再利用可能にした、プログラム内の小さなプログラムのようなものです。Pythonでの関数の記述方法は多彩です。今回は、関数内関数とスコープについて解説します。関数内関数は関数のネストです。
第15回.lambda(ラムダ式、無名関数)と三項演算子
関数は一連の処理をまとめることで再利用可能にした、プログラム内の小さなプログラムのようなものです。Pythonでの関数の記述方法としてlambda(ラムダ式、無名関数)があります。lambdaは無名関数を定義するものです。
第16回.Pythonの引数は参照渡しだが・・・
r>関数やメソッドの引数に渡す方法としては、「参照渡し」と「値渡し」があります。Pythonはすべて参照渡しであり、値渡しを指定する書き方は用意されていません。では、Pythonの参照渡しとはどういうものか… 関数全般については、以下3回に渡ってやってきました。
第17回.リスト内包表記
Pythonではリストを生成する方法の1つとしてリスト内包表記があります。リスト内包表記を使うと1行でシンプルに書くことが出来ます。Pythonではシンプルかつ効率的な記述方法として良く利用されています。
第18回.例外処理(try文)とexception一覧
スクリプトを実行したときには各種の例外(エラー)が発生することがあります。スクリプトを書いて実行し、エラーが出れば修正してまた実行する。これを繰り返すことでエラーのないプログラムが完成していきます。しかし、エラーが出ないように完全に対処することは極めて困難です。
第19回.import文(パッケージ・モジュールのインポート)
Pythonで使う関数には、・組み込み関数・標準ライブラリ・外部ライブラリ・自作モジュール等々、いろいろな形態があります。これらのうち、組み込み関数以外はimport(インポート)して使う必要があります。ここで使っている用語が分かりづらいので、まずは簡単に用語説明した後に、import文の文法と使い方についてみていきます。
第20回.フォルダとファイルの一覧を取得
Pyhtonでフォルダやファイルを操作する手段は複数提供されています。標準ライブラのos,glob,pathlibについてサンプルコードとともに解説していきます。バージョン3.4で追加されたpathlibがとても便利なので、これが使えれば良いと思います。
第21回.CSV読み込みとopen()関数とwith文
Pythonの標準ライブラリのcsvを使いCSVファイルを読み込みます。ファイルをオープンするにはopen()関数を使いますが、このときwith文を使うととても便利です。open()関数の仕様を確認してから、with文の使い方、そしてCSVの読み込みと順に解説していきます。
第22回.CSV読み書き(csvモジュール)
Pythonの標準ライブラリのcsvモジュールを使いCSVファイルを読み書きします。前回の続きとしてcsvの書き込みをやります。第21回.CSV読み込みとopen()関数とwith文 csvモジュールのより詳細な解説をします。
第23回.pipコマンド(モジュールのインストール)
第24回.エクセルを操作してみよう
第25回.WEBスクレイピング
第26回.グラフを描画


参考書籍

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

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

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




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

CSV読み書き(csvモジュール)|Python入門(9月29日)
「Excel 4.0 マクロ」の使い方|VBA技術解説(9月28日)
CSV読み込みとopen()関数とwith文|Python入門(9月28日)
フォルダとファイルの一覧を取得(os,glob,pathlib)|Python入門(9月26日)
import文(パッケージ・モジュールのインポート)|Python入門(9月24日)
例外処理(try文)とexception一覧|Python入門(9月23日)
リスト内包表記|Python入門(9月22日)
Pythonの引数は参照渡しだが・・・|Python入門(9月21日)
lambda(ラムダ式、無名関数)と三項演算子|Python入門(9月20日)
関数内関数(関数のネスト)とスコープ|Python入門(9月18日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




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


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



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