どうもLibraです。
今回は「スラスラわかるPython 第2版」を読んだのでそのレビューを書いていこうと思います。出版社のページでは、付録データのダウンロードや正誤表の確認などができます。下記にリンクを貼っておきますので興味のある方は合わせてご覧ください。
概要
著者 | 岩崎圭・北川慎治 |
出版社 | 翔泳社 |
発売日 | 2021年11月17日 |
価格 | 2,530円(本体2,300円+税10%) |
ページ数 | 328 |
ISBN | 978-4-7981-6936-1 |
難易度とわかりやすさ
難易度 | 1/5 | |
わかりやすさ | 5/5 |
難しい内容は一切なく、初心者向けと言えるでしょう。逆にある程度Pythonを触った経験のある人にとっては物足りない内容だと思います。
イラストを交えての解説や、実行結果のスクリーンショットが豊富で、わかりやすさに関しては文句なしだと感じました。また、windows/mac環境での実行結果や、OSの違いで発生し得る細かな違いにも言及されているため、windows/macユーザのどちらでもこの本の内容を実行できる点も魅力です。
各章要約
第1章 Pythonの紹介
1章から3章まではこの本の序章的な内容で、1章では主にPythonとは、プログラミングとは何かについて書かれています。と言ってもかなり基本的なことしか書かれていないので、ある程度パソコンに強い人であれば読み飛ばしても問題ないでしょう。
第2章 Pythonを自分のPCで動かそう
Pythonを動かすための環境を準備します。Pythonとテキストエディタのインストール、環境設定などを行うので、何も考えず真似していきましょう。
第3章 Pythonでプログラムを動かそう
2章で設定したことの確認です。この章に書いてある内容を真似してうまく動作すれば準備完了です。次章から本題であるPythonの内容に入っていきます。
第4章 型とメソッド
プログラムのデータ型について解説されています。数値データはint型、文字列データはstr型など、プログラム上ではデータの種類によって型が違うこと、また型によってそれぞれ固有の機能(メソッド)を適応できることを解説しています。例えばstr型のデータに対して、対象データのすべての文字列(英字)を大文字に変換するupperメソッドや、小文字に変換するlowerメソッドなどが紹介されています。
補足です。メソッドと聞いてオブジェクト指向について連想される方がいるかと思いますが、この本ではオブジェクト指向やオブジェクト指向プログラミングについての解説はありません。あくまでもPythonというプログラミング言語の基本中の基本概念のみを取り扱っています。(オブジェクト指向について解説しようとすると、あらましだけでももう100ページくらいは必要になりそうですし…。初心者向けということで冗長化を避けたのかなあと思います)
第5章 条件分岐
if文について解説されています。if文の使い方と比較演算子についてまとめられています。
第6章 リスト型と繰り返し処理
リスト型とfor文について解説されています。「for文を使ってリストの内容を順番に表示してみよう」といったコンセプトで解説を進めつつ、リスト型で使える機能(メソッド)もいくつか紹介されています。また、while文の解説はありません。
第7章 辞書型
辞書型が持つkeyやvalueの概念や、for文を使ってデータを取り出す方法が解説されています。タプルに少し触れたりもしていますがあまり深入りはせず、シンプルに情報がまとめられています。
第8章 関数
関数の定義の仕方、引数と戻り値、関数を使うことによる利点、変数のスコープについて解説されています。全体的にあまり深入りせず、わかりやすく情報がまとめられていますが、この章の内容はおそらくこの本の中で一番重要なのでしっかり理解しておくと良いでしょう。
関数のお話は後半の「第11章 スクリプト、モジュール、パッケージ」にも繋がります。
第9章 エラーと例外
syntax errorをはじめとするエラーの種類と、正常形、異常形について解説されています。エラーの種類についてはともかく、正常形や異常形の話を初心者向けの本で扱っているのは珍しい印象ですが、知っていて損になることはないでしょう。
この章はプログラムの書き方や仕様の話ではなく、どちらかと言えば設計やテストなど開発現場に寄った話なので、想定される読者層(初めてプログラミング、もしくはPythonに触る人)には少し時期尚早な気もします(個人的にですが)。とはいえ、あまり深入りしている訳ではないので、頭の片隅に留めておくとよいでしょう。
第10章 型ヒント
型ヒントについて解説されています。Python以外のプログラミング言語を触ったことのある方はすぐに気づいたと思いますが、Pythonという言語には変数を定義する際に型を宣言する必要がないという珍しい仕様があります。他のプログラミング言語では変数型を明確にしておくことがメジャーなのですが、Pythonもそれに倣って変数型を明確にしようとする動きがあります。
型ヒント自体は書かなくてもエラーにはなりませんが、チームで開発を進めたり、プログラムの保守性、可読性を高めるために重要なことだったりするので、Pythonと長い付き合いをしていく方はよく理解しておくと良いでしょう。
第11章 スクリプト、モジュール、パッケージ
Pythonスクリプトの実行、モジュールをimportする方法、外部ライブラリのインストール方法について解説されています。非常にコンパクトにまとめられていますが、知らないと話にならないレベルの内容ばかりなのでしっかり理解しましょう。
第12章 Webスクレイピング
これまでの総括的な内容です。BeautifulSoupを用いてWebスクレイピングを行うプログラムを書いていく訳ですが、これにはPythonだけでなくWebの知識もある程度必要となってきます。今回は必要な周辺知識も一緒に解説されているため、初心者の方でも問題なくプログラムを書いていくことができるでしょう。
この章で個人的に一番大切だと思うことは、「プログラミングスキル自体は開発の本質ではない」ということです。プログラミングスキルの高さはもちろん重要でそれを否定するつもりは全くありませんが、開発現場、例えばECサイト or ブロックチェーン or スマホアプリを開発している現場では、それぞれの技術に関する専門知識が必要になってきます。開発対象の技術に関して深い知識と見識がなければ良い設計、良いテスト(9章の正常形、異常形に関わる話)ができないためです。
プログラミング言語はあくまで実装に用いるツールでしかありません。実際の開発現場では12章のように(プログラミング言語の仕様とは別に)開発に必要となる専門知識を調べたり勉強したりすることはよくある話です。普段から最新の技術についてアンテナを張っておき、勉強する癖をつけておくと良いでしょう。
第13章 ファイル操作
Pythonを用いてファイルを開いたり編集したりする方法を解説しています。多くの職場や大学で使われているだろうexcelファイルやCSVファイルを操作する方法が紹介されているので、技術職でない方や学生にとっても知っていると便利な内容だと思います。
この本を読んでやってみたこと
BeautifulSoupを用いてWebページのテキストを抽出し、テキストファイルに書き出す関数を書いてみました。シンプルすぎて特に言うことはありませんが、書き出したファイルは何らかのデータ解析や機械学習のためのデータセットとして使えそうですね。
OS: macOS Monterey 12.2
Python: 3.8.2
BeautifulSoup4: 4.10.0
import requests
from bs4 import BeautifulSoup
# 関数の引数にurlを渡せばOK
def save(url):
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
f = open('savedText.txt', 'w')
f.write(soup.get_text())
f.close()
個人的な感想
ここまで書いてきた通りかなり初歩的な内容の本になってます。なのである程度プログラミングの経験のある方には正直おすすめはしません(ゼロとは言いませんが得られることはそう多くないかなと個人的に思います)。
私もPythonに初めて触れる際にこの本を読ませていただきましたが、大学で情報工学を専攻しC言語をある程度触ってきた経験があったので、かなり簡単な内容だなと感じました。12章でWebスクレイピングのコードを書く際に少し手応え?を感じた程度でしょうか。「オブジェクト指向プログラミングは手強いぞ」という漠然な印象を持っていた私は、しっかり基礎から固めていくためにこの本を手に取りましたが、ある程度プログラミング経験のある方は臆せずもう少しレベルの高い本を選んだ方がいいかもしれません。
逆に「これからプログラミングを始める」「過去にプログラミング挫折したけど再チャレンジしたい」という方にはオススメします。12章は少し手強いと感じるかもしれませんが、少なくとも11章までの内容はあらゆる入門本の中でも一番簡単なレベルなので、ゆっくりあせらず真似していけば必ず理解できると思います(このレベルの内容を理解できなかったらすまんけどプログラミング向いてないかも…)。高校生くらいの方でも全然触れる内容なので、興味のある方はチャレンジしてみてはいかがでしょうか。
まとめ
私がこの本を読んだ時はオブジェクト指向の話を入れたり、リストとか条件分岐とかもっと凝った話を入れてもいいんじゃないかと思ったりもしましたが、初心者向けの本ですし別にこれで問題ないですね。経験者の人はもっとレベルの高い本を選べばいいだけですし。初心者の方もこの本の内容を理解できたら、さらにレベルの高い内容に挑戦してPythonの奥深さを楽しんでいただけたらと思います。
今回はここまでとなります。ここまで読んでくださった皆様、ありがとうございました。
・内容は超カンタン!
・初心者には最適な一冊
・経験者には物足りないかも