docstringを使うと、Pythonのコードを書きながら、同時にそのドキュメントも作成できる。関数のdocstringを例にその基本的な書き方を見ていく。
デコレーターを使うと、関数に何らかの追加機能を持たせられる。デコレーターの定義や、その使い方、同じことをするPythonコードについて見ていこう。
ジェネレータイテレータのthrow/closeメソッド、ジェネレータを簡潔に記述できるジェネレータ式、他のイテレータに処理を委譲するyield from式を取り上げる。
イテレータを戻り値とする「ジェネレータ関数」、それが返す「ジェネレータイテレータ」の使い方の基本について説明する。
Pythonにおける複数データの反復処理を支える基盤である反復可能オブジェクトとイテレータの振る舞いを見た後、自分でイテレータを定義してみよう。
ファイル操作には例外処理が付きものだ。その基本的な書き方と、with文を使った、よりシンプルな表記について見ていこう。
shutilモジュールを使って、ファイルコピー、ディレクトリ階層のコピーや削除、ファイルやディレクトリの移動(名前変更)を行う方法を説明する。
pathlibモジュールが提供するPathクラス、PurePathクラスなどを使って、ファイルやディレクトリを扱う方法を紹介する。
Pythonのプログラム内からディレクトリを作成したり、ファイルやディレクトリを削除したり、ディレクトリ階層を走査する方法を紹介する。
Beautiful Soup 4を使って、urllib.request.urlopen関数などで取得したHTMLファイルから情報を抜き出す基本的な方法を見てみよう。
urllib.requestモジュールを使って、指定したURLをオープンし、その内容をファイルと同様な手法で取り出す方法の基本を紹介する。
shelveモジュールを使うと、辞書と似た使い勝手でPythonオブジェクトを外部ファイルに保存できる。その使い方と注意点についてまとめる。
Pythonの標準ライブラリ「pickle」を使って、Pythonのオブジェクトをファイルへと保存したり、ファイルからオブジェクトを復元したりする方法を紹介する。
バイナリファイルからのデータの読み込み、structモジュールを利用したバイナリファイルへのデータの書き込みと読み込みの方法を紹介する。
テキストファイルを例に、ファイルのオープン、ファイルに対する読み込みや書き込み、ファイルのクローズなど、ファイル操作の基本を取り上げる。
自分のコードから例外を発生させる(送出する)方法と、Pythonが標準で提供する例外クラスの概要、独自に例外クラスを定義する方法を見ていく。
プログラムの実行を妨げるさまざまな状況や問題を、Pythonでは「例外」という仕組みで表す。その概要と例外を処理する方法を見ていこう。
多重継承を行う際には複数のクラスからインスタンス変数を継承すると問題が発生する。それを回避する方法と、そこから生まれるmixinという考え方を紹介する。
Pythonでは複数のクラスを基にクラスを定義する「多重継承」が可能だ。その方法と、多重継承時にメソッドが呼び出される仕組みについて見ていこう。
クラスと名前空間やスコープの関係について見た後に、外部には見せたくない「プライベートな属性」の扱いについて見てみよう。
以前にリストを利用して作成したスタックを、今度はリストを継承して作成しながら、「is-a」「has-a」「クラスのカスタマイズ」といったことについて見ていこう。
Pythonにおけるクラスの役割、クラスを継承することの意味、継承の方法など、クラスの継承に関する基本知識を概観しよう。
Pythonのクラス機構を利用して、スタックとキューという代表的なデータ構造を作成し、特殊メソッドを使ってスタックをさらに改良してみる。
クラスとオブジェクト、クラスの定義、インスタンス変数、__init__メソッド、インスタンスメソッドというクラスの基礎知識を紹介する。
クラスとオブジェクト、クラスの定義、インスタンス変数、__init__メソッド、インスタンスメソッドなど、クラスの基礎知識を紹介する。
代入演算子/算術演算子/比較演算子/ブール演算子など、Pythonで各種の演算を行うための記号類をまとめる。
Pythonのオブジェクトの同一性と、is演算子や==演算子による比較の違い、str関数とrepr関数で得られる文字列表現の違いなどについて取り上げる。
Pythonでは、プログラムが扱うデータは全て「オブジェクト」だ。そこで今回は、オブジェクトとは何か、その性質、変数との関係などについて見ていこう。
Pythonには複数のモジュールを束ねて扱うための「パッケージ」という仕組みがある。その作り方、インポート方法などについて見ていこう。
Pythonでは複数の関数や変数などを「モジュール」にまとめることで、コードの再利用が可能になる。その作り方について見ていこう。
Pythonには多くの「標準ライブラリ」や「外部ライブラリ」が「モジュール」として提供されている。それらを自分のプログラムで使う方法を説明する。
Pythonでは「集合」も標準でサポートされている。その基本と、集合の比較や和/差/積/対称差の求め方、変更不可能な集合などについて見ていこう。
Pythonには「キーと値」の組を管理するためのデータ構造として「辞書」がある。その基本的な使い方とリストやタプルとの違いなどについて触れる。
リストとよく似ているが、変更不可能という大きな特徴を持つ「タプル」の基本、その操作、リストとの違いなどについて説明する。
リストはfor文を使用した繰り返し処理とよく組み合わせて使われる。そこで便利に使える関数や「イテレータ」という概念などを取り上げる。
要素数の取得、リストの結合、リストに対する要素の追加と削除、並べ替え、反転、コピーなど、リストを操作する方法をまとめて紹介する。
数値や文字列などの基本データ型と並んで、Pythonでとてもよく使われるデータ型である「リスト」の基礎知識を説明する。
Pythonでは、関数を変数に代入したり、関数の引数や戻り値に使用したりできる。この特性と、簡潔に関数を記述できるようにするラムダ式について見ていく。
関数のローカル変数と各種のスコープ、名前解決の順序、名前空間など、関数にまつわるスコープの話をまとめる。
位置引数やキーワード引数、パラメーターのデフォルト引数値、可変長引数の扱い方など、Pythonにおける関数の引数について見てみよう。
「関数とは」「関数呼び出しの方法」「組み込み関数」「ユーザー定義関数」「関数定義の方法」など、Pythonの関数の基本知識を説明する。
Pythonで繰り返し処理を記述するためのもう1つの機構である「while文」を見ていこう。while文をfor文で書き換えたり、少し複雑なプログラムも作ったりしよう。Python 3.8以降で使える代入式とwhile文の組み合わせについても紹介する。
Pythonに限らずプログラミングの世界では「繰り返し処理」は必須の機能だ。Pythonでこれを行うための「for文」を取り上げる。
複雑な構造のプログラムを書くには「制御構造」が欠かせない。その中でも、条件によって処理を振り分けるために使われるif文に関連する話題を取り上げ、Python 3.10で追加されたmatch文を簡単に紹介する。
Pythonのコメントの種類や、プログラムコードを一時的に無効化するコメントアウト、プログラムを記述したファイルのエンコーディング指定の方法を見ていこう。
文字列中で値を0埋めするなどの書式指定を行う方法をformatメソッドを中心に説明する。f文字列や以前の形式の書式指定についても取り上げる。
Pythonの文字列はさまざまに操作できる。文字数の取得、要素の取り出し、文字列に特定の文字列が含まれているかの判定、文字列の置換などを紹介する。
シングルクオート/ダブルクオート/トリプルクオート/raw文字列/f文字列/文字列と数値の変換など、Pythonで「文字列」を扱うための基本事項を紹介。
プログラムを書く上で変数は必須のものだ。変数を使うことのメリットや、その定義方法、名前を付ける際に気を付けるべきことなどを見ていこう。
Pythonはさまざまな種類の数値を扱える。今回は整数と浮動小数点数について簡単に見た後、それらを利用して四則演算などの操作を行ってみよう。
Pythonで「Hello World」プログラムを3つ作りながら、Pythonプログラムを構成する要素や、Pythonの特徴を見てみよう。
機械学習に取り組んでみたいという人に(そうでない人にも)向けて、Pythonプログラミングを基礎からやさしく解説する連載をPython 3.10に合わせて改訂します。