最高のPythonブック

最高のPythonブック

Pythonは素晴らしいプログラミング言語です。 ほとんどすべてのプログラミングタスクに適用でき、迅速な開発とデバッグを可能にし、おそらく最も歓迎されるユーザーコミュニティのサポートをもたらします。

Pythonの使用を開始することは、新しいスキルを習得することに似ています。学習をガイドするために、接続するリソースを見つけることが重要です。 幸いなことに、Pythonのプログラミングの基本概念とプログラミングの詳細の両方を学習するのに役立つ優れた本がたくさんあります。 豊富なリソースがあるため、どの書籍があなたの状況に最適であるかを特定することは困難です。

この記事では、書評のコレクションを通じてPythonを学ぶのに最適な本を取り上げます。 各レビューでは、本の趣味、カバーされているトピック、およびそれらのトピックを説明するために使用されるコンテキストが提供されます。 書籍のスタイルや表示、読者の背景、その他の要因に応じて、さまざまな書籍がさまざまな人々に共鳴します。

Pythonを初めて使用する場合は、introductory booksのいずれかを使用すると、基本の基礎がしっかりと固まります。

たぶん、あなたはあなたの子供と一緒にPythonを学びたい、または多分子供のグループにPythonを教えたいです。 若い視聴者を対象としたリソースについては、the Best Python Books for Kidsを確認してください。

Pythonの旅が進むにつれて、コードの効率を最大限に高めるために、さらに深く掘り下げていく必要があります。 best intermediate and advanced Python booksは、Pythonスキルをレベルアップするのに役立つ洞察を提供し、Pythonistaのエキスパートになることを可能にします。

これらのレビューを読んだ後、選択すべき本がまだわからない場合、出版社は本の提供するものの例を示すサンプルの章またはセクションをしばしば提供します。 この本のサンプルを読むことで、著者のペース、スタイル、期待を最も代表する写真が得られるはずです。

どの本が最も際立っているかにかかわらず、私たちの書評家の一人であるスティーブンCからのこの逸話を検討してください。 ハウエル:

「好きな教授がかつて私に言った、「最初に読んだ本は問題ではない。 最も理にかなっているのは常に2番目です。」

これが私にとっていつもそうだったとは言えませんが、最初の質問が困惑したりイライラしたとき、2番目の参照がすべての違いを生むことができることは間違いなくわかりました。

Pythonクラスを学習するとき、最初に取り上げた2冊の本で使用されている例に関連することは困難でした。 概念がクリックし始めたのは、私が言及した3冊目の本まででした。

重要な教訓は、立ち往生したりイライラしたりして、あなたが持っているリソースが助けにならないなら、あきらめないことです。 別の本を見たり、ウェブを検索したり、フォーラムで質問したり、ちょっと休憩したりしてください。

Note:この記事には、Amazonなどの小売業者へのアフィリエイトリンクが含まれているため、いくつかのリンクをクリックして購入することで、RealPythonをサポートできます。 これらのリンクのいずれかから購入すると、追加費用は発生しません。 アフィリエイトリンクが編集上の決定に影響を及ぼすことはありません。

Python学習のためのベストブック

Pythonを初めて使用する場合は、次の2つの状況のいずれかにいる可能性があります。

  1. あなたはプログラミングが初めてで、Pythonを学ぶことから始めたいと思っています。

  2. 別の言語でかなりの量のプログラミング経験があり、Pythonを学びたいと思っています。

このセクションでは、これら2つのシナリオの最初の1つに焦点を当て、プログラミングとPythonの両方を初めて使用する読者に最適なPythonプログラミングの本と思われる本のレビューを行います。 したがって、これらの本は以前のプログラミング経験を必要としません。 絶対的な基礎から始まり、一般的なプログラミング概念とPythonへの適用方法の両方を教えます。

Note:the best Python books for experienced programmersを探している場合は、introセクションとadvancedセクションに完全なレビューがある次の書籍の選択を検討してください。

  • Think Python:このリストの最も基本的なThink Pythonは、包括的なPythonリファレンスを提供します。

  • Fluent Python:Pythonのシンプルさにより、コーディングをすばやく開始できますが、この本では、言語のいくつかの深いトピックを取り上げながら、慣用的なPythonコードの記述方法を説明します。

  • Effective Python: 59 Ways to Write Better Python:この比較的短い本は、Fluent Pythonと同様に、真のPythonコードの書き方を教えることに焦点を当てた59の記事のコレクションです。

  • Python Cookbook:クックブックとして、これは、Pythonを使用して別の言語で実行したタスクを完了する方法に関する優れたリファレンスになります。

あるいは、よく書かれた徹底的なリソースであるthe official Python Tutorialに直接アクセスすることもできます。

Pythonクラッシュコース

エリック・マッテス(No Starch Press, 2016)

Python Crash Course

それは錫で言うことをします、そしてそれは本当にうまくします。 この本は、基本的なPython要素とデータ構造のウォークスルーから始まり、変数、文字列、数値、リスト、およびタプルを使用して、それぞれの操作方法の概要を説明します。

次に、ifステートメントと論理テストについて説明し、続いて辞書について詳しく説明します。

その後、この本では、ユーザー入力、whileループ、関数、クラス、ファイル処理、およびコードのテストとデバッグについて説明します。

それは本の前半に過ぎません! 後半では、3つの主要なプロジェクトに取り組み、巧妙で楽しいアプリケーションを作成します。

最初のプロジェクトは、pygameパッケージを使用して開発された、本質的にスペースインベーダーであるエイリアンインベーダーゲームです。 (クラスを使用して)船を設計し、それを操縦して弾丸を発射する方法をプログラムします。 次に、いくつかのクラスのエイリアンを設計し、エイリアン艦隊を動かし、それらを撃shootすることを可能にします。 最後に、スコアボードとハイスコアのリストを追加して、ゲームを完了します。

その後、次のプロジェクトでは、matplotlibを使用したデータの視覚化、ランダムウォーク、ローリングダイス、および少しの統計分析を行い、pygalパッケージを使用してグラフとチャートを作成します。 さまざまな形式のデータをダウンロードしてPythonにインポートし、結果を視覚化する方法、およびWeb APIとやり取りし、GitHubおよびHackerNewsからデータを取得して視覚化する方法を学びます。

3番目のプロジェクトでは、Djangoを使用して完全なWebアプリケーションを作成し、学習ログを設定して、学習しているユーザーを追跡します。 Djangoのインストール、プロジェクトのセットアップ、モデルの設計、管理インターフェイスの作成、ユーザーアカウントのセットアップ、ユーザーごとのアクセス制御の管理、Bootstrapでアプリ全体のスタイルを設定し、Herokuに最終的にデプロイする方法について説明します。

この本はよく書かれており、きちんと整理されています。 本の後半を構成する3つの挑戦的で楽しいプロジェクトに加えて、多数の有用なエクササイズを提示します。 (Reviewed by David Schlesinger.)

Head-First Python、第2版

ポール・バリー(O’Reilly, 2016)

Head-First Python

私はHead-Firstシリーズの本が本当に好きですが、このセクションの他の多くの推奨事項よりも全体的なコンテンツが明らかに軽量です。 トレードオフは、このアプローチが本をよりユーザーフレンドリーにするということです。

一度に1つの小さな、かなり自己完結型のチャンクで物事を学ぶのが好きな人で、関連する概念の具体的な例や図をたくさん持ちたい場合は、Head-Firstシリーズはあなたのために。 出版社のウェブサイトには、彼らのアプローチについて次のように述べています。

「認知科学と学習理論の最新の研究に基づいて、Head-First Pythonは、テキストを多用するアプローチではなく、視覚的に豊かな形式を使用して心を動かします。 新しいコンセプトに苦労して時間を無駄にするのはなぜですか? この多感覚学習体験は、脳が実際に機能する方法のために設計されています。」 (Source)

イラスト、例、補足、その他のヒントが満載のHead-First Pythonは、一貫して魅力的で読みやすいものです。 この本は、リストに飛び込み、それらを使用して操作する方法を説明することから、Pythonのツアーを開始します。 次に、モジュール、エラー、およびファイル処理に進みます。 各トピックは、統一プロジェクトを中心に編成されています。CommonGateway Interface(CGI)を介してPythonを使用して、学校のアスレチックコーチ向けの動的なWebサイトを構築します。

その後、本は、Androidアプリケーションを使用して、作成したWebサイトと対話する方法を教えることに時間を費やします。 ユーザー入力を処理し、データを圧縮し、PythonアプリケーションをWebにデプロイおよびスケーリングすることに関係するものを調べることを学びます。

この本は他のいくつかの本ほど包括的ではありませんが、おそらくよりアクセスしやすく、痛みがなく、効果的な方法で、Pythonのさまざまなタスクをカバーしています。 これは、プログラムを書くという主題が最初はやや恐ろしいと感じる場合に特に当てはまります。

この本は、どんな挑戦でもあなたを案内するように設計されています。 内容はより焦点を絞っていますが、この本はあなたを忙しく学習させ続けるための多くの資料を持っています。 あなたは退屈しません。 ほとんどのプログラミングの本があまりにも乾燥していると思うなら、これはあなたがPythonを始めるのに素晴らしい本になるでしょう。 (Reviewed by David Schlesinger and Steven C. Howell.)

Pythonで独自のコンピューターゲームを発明する、第4版

アル・スワイガート(No Starch, 2017)

Invent Your Own Computer Games with Python

ゲームがあなたのものである場合、またはあなた自身のゲームのアイデアを持っている場合でも、これはPythonを学ぶのに最適な本です。 この本では、古典的なゲームの構築に焦点を当てたアプリケーション演習でプログラミングとPythonの基礎を学びます。

PythonシェルとREPLループの概要から始まり、基本的な「Hello、World!」が続きます。スクリプトでは、乱数、フロー制御、型変換、およびブールデータをカバーする基本的な数字推測ゲームの作成に飛び込みます。 その後、印刷ステートメント、エスケープ文字、および基本的な文字列操作の使用方法を説明するために、小さな冗談を言うスクリプトが作成されます。

次のプロジェクトは、テキストベースの洞窟探索ゲームであるDragon's Realmです。このゲームでは、フローチャートと関数を紹介し、独自の引数とパラメーターを定義する方法をガイドし、ブール演算子、グローバルスコープとローカルスコープ、および%(t0 )s関数。

Pythonコードのデバッグ方法を少し迂回した後、次に、リスト、in演算子、メソッド、elifステートメント、randomについて学習しながら、ASCIIアートワークを使用してハングマンのゲームを実装します。 )sモジュール、およびいくつかの文字列メソッド。

その後、辞書、キーと値のペア、および複数の変数への割り当てについて学習しながら、単語リストや難易度などの新機能でハングマンゲームを拡張します。

次のプロジェクトはTic-Tac-Toeゲームです。これは、いくつかの高レベルの人工知能の概念を紹介し、条件付きで評価を短絡する方法を示し、None値といくつかの異なるアクセス方法を説明します。リスト。

本の残りの部分を通るあなたの旅は、同様の流れで進みます。 Mastermindスタイルの数値推測ゲーム、Sonar Huntゲームのデカルト座標、Caesar暗号を作成するための暗号化、およびReversi(別名Othello)を実装する際の人工知能を構築しながら、ネストされたループを学習します。それ自体に対して。

このすべての後、PyGameでゲームにグラフィックスを使用する方法に飛び込みます。グラフィックスのアニメーション化方法、衝突検出の管理方法、サウンド、画像、スプライトの使用方法について説明します。 これらすべての概念をまとめるために、この本は、グラフィカルな障害物回避ゲームの作成をガイドします。

この本はよくできており、各プロジェクトが自己完結型のユニットであるという事実により、魅力的でアクセスしやすくなっています。 あなたがやって学ぶことを好む人なら、あなたはこの本を楽しむでしょう。

この本が必要な場合にのみ概念を紹介するという事実は、考えられる不利益になる可能性があります。 参照というよりもガイドとして構成されていますが、おなじみのゲームの文脈で教えられている幅広い内容は、Pythonを学ぶのに最適な本の1つです。 (Reviewed by David Schlesinger.)

Think Python:コンピューター科学者のように考える方法、第2版

アレンB ダウニー(O’Reilly, 2015)

Think Python: How to Think Like a Computer Scientist

ビデオゲームを作成してPythonを学ぶのが面倒な場合は、Allen Downeyの本Think Pythonを検討してください。これは、はるかに真剣なアプローチを採用しています。

タイトルが示すように、この本の目的は、コーディングについてコーダーがどのようにthinkするかを教えることであり、それはうまく機能します。 他の本と比較すると、より乾燥しており、より直線的に整理されています。 この本は、基本的なPythonプログラミングについて知っておく必要のあるすべてに焦点を当てており、非常にわかりやすく、明確で包括的な方法です。

他の類似の本と比較して、より高度な領域の一部には深く入り込んでおらず、代わりに、他の本では手に入らないトピックを含む、より広範な資料をカバーしています。 このようなトピックの例には、演算子のオーバーロード、ポリモーフィズム、アルゴリズムの分析、および可変性と不変性が含まれます。

以前のバージョンでは演習が少し軽かったのですが、最新版ではこの欠点が大幅に修正されました。 この本には、ケーススタディとして提示された4つのかなり深いプロジェクトが含まれていますが、全体として、他の多くの本と比較して、指示されたアプリケーションの演習が少なくなっています。

事実だけを段階的に説明するのが好きで、プロのコーダーが問題をどのように見ているかについてもう少し洞察を得たいなら、この本は素晴らしい選択です。 (Reviewed by David Schlesinger and Steven C. Howell.)

物理学における効果的な計算:Pythonを使用した研究のフィールドガイド

アンソニー・スコパッツ、キャスリン・D ハフ(O’Reilly, 2015)

Effective Computation in Physics

これは、私が最初にPythonを学んでいたときに欲しかった本です。

その名前にもかかわらず、この本は、物理学、研究、または計算の問題の経験がない人にとって素晴らしい選択です。

これは実際にはPythonを使用するためのfield guideです。 実際にPythonを教えることに加えて、コマンドラインやバージョン管理などの関連トピック、およびソフトウェアのテストと展開についても説明します。

優れた学習リソースであることに加えて、この本は優れたPythonリファレンスとしても役立ちます。トピックはよく散りばめられた多くの例と演習で構成されているからです。

この本は、適切な名前が付けられた4つのセクションに分かれています:はじめに、完了、適切な取得、および公開です。

「はじめに」セクションには、本格的な起動に必要なすべてが含まれています。 それは、bashコマンドラインの基礎に関する章から始まります。 (はい、bash for Windowsをインストールすることもできます。)次に、この本はPythonの基礎を説明し、演算子、文字列、変数、コンテナー、ロジック、フロー制御など、予想されるすべてのトピックに触れます。 さらに、すべての異なるタイプの関数に特化した章全体と、クラスおよびobject-oriented programming.に特化した章があります。

この基盤を基に、Getting it DoneセクションはPythonのデータ中心の領域に移動します。 本の約3分の1を占めるこのセクションは、科学者、エンジニア、データ科学者に最も適していることに注意してください。 それがあなたなら、楽しんでください。 そうでない場合は、先に進んで、関連するセクションを選択してください。 ただし、pip、conda、仮想マシン、およびDockerコンテナを使用してソフトウェアを展開する方法を説明するため、このセクションの最後の章を必ずキャッチしてください。

データの操作に興味がある人のために、セクションは簡単なoverview of the essential libraries for data analysis and visualization.で始まります。次に、通常の式、NumPy、データストレージ(アウトオブアウトの実行を含む)のトピックを教えるための別の章があります。コア操作)、特殊なデータ構造(ハッシュテーブル、データフレーム、Dツリー、およびkdツリー)、および並列計算。

Get it Rightセクションでは、Pythonでの作業に関連する一般的な落とし穴の多くを回避および克服する方法を説明します。 まず、makeを使用してソフトウェアパイプラインを構築する方法を説明することにより、ソフトウェアの展開に関する説明を拡張します。 次に、GitとGitHubを使用して、コードの編集内容を経時的に追跡、保存、整理する方法を学びます。これはバージョン管理と呼ばれるプロセスです。 このセクションは、2つの信じられないほど貴重なスキルである、コードのデバッグとテストの方法を教えることで終わります。

最後のセクション「Getting Out Out There」では、自分自身を含め、コードのコンシューマーとの効果的なコミュニケーションに焦点を当てています。 ドキュメント、マークアップ言語(主にLaTeX)、コードコラボレーション、ソフトウェアライセンスのトピックを扱います。 セクションと本は、トピックごとに整理された科学的なPythonプロジェクトの長いリストで終わります。

この本は、Pythonのすべての基礎を教えることに加えて、Pythonistaで使用される多くの技術も教えているため、際立っています。 これは、Pythonを学ぶための最高の本の1つです。

また、優れたリファレンスとして機能し、完全な用語集、参考文献、および索引になります。 この本には間違いなく科学的なPythonのスピンがありますが、科学的なバックグラウンドから来ていなくても心配する必要はありません。 数学的な方程式はありません。計算物理学を読んでいると同僚に感銘を与えることさえできます。 (Reviewed by Steven C Howell.)

Python 3を学ぶ

ゼッドA ショー(Addison-Wesley, 2016)

Learn Python 3 The Hard Way

Learn Python the Hard Wayはクラシックです。 私は本のアプローチの大ファンです。 「つらい方法」を学ぶとき、あなたはしなければなりません:

  1. すべてのコードを自分で入力してください

  2. すべての演習を行います

  3. 遭遇する問題に対する独自の解決策を見つける

この本の素晴らしいところは、コンテンツがどれだけ上手く表示されるかです。 各章は明確に提示されます。 コード例はすべて簡潔で、適切に構築されており、要点です。 エクササイズは有益であり、あなたが遭遇した問題は決して乗り越えられません。 最大のリスクは誤植です。 この本を読んで、あなたは間違いなくPythonの初心者ではなくなるでしょう。

タイトルに惑わされないでください。 長い目で見れば、「ハードな方法」が簡単な方法であることがわかります。 たくさんのものを入力するのが好きな人はいませんが、それはプログラミングが実際に関与していることなので、最初から慣れることは良いことです。 この本の良いところの1つは、いくつかのエディションで洗練されていることです。そのため、粗いエッジはすてきで滑らかになりました。

この本は一連のover fifty exercisesとして構成されており、それぞれが前のバージョンに基づいており、それぞれが言語の新しい機能を教えています。 演習0から始めて、コンピューターにPythonをセットアップし、簡単なプログラムの作成を開始します。 変数、データ型、関数、ロジック、ループ、リスト、デバッグ、辞書、オブジェクト指向プログラミング、継承、パッケージ化について学びます。 ゲームエンジンを使用して簡単なゲームを作成することもできます。

次のセクションでは、自動テスト、文を解析するためのユーザー入力の字句スキャン、ゲームをWeb上に配置するためのlpthw.web packageなどの概念について説明します。

Zedは魅力的な忍耐強い作家であり、詳細を詳しく説明しません。 この本を正しい方法で学習すれば、「ハードな方法」で、テキスト全体およびプログラミング演習で提供される学習の提案をフォローアップすることができます。 (Reviewed by David Schlesinger.)

Note:この記事に含まれているすべての本の中で、レビューが多少まちまちであるのはこれだけです。 Stack Overflow(SO)コミュニティは、次の文で始まる22件の苦情のリストをまとめました。

「[Learn Python the Hard Way]を使用しているユーザーがSOとチャットの両方で質問that don’t make a lot of senseを投稿するという一般的な傾向に気づきました。 これは、本で使用されている構造と技法によるものです。」 (Source)

それらは、以下を含む独自のlist of recommended tutorialsを提供します。

Learn Python the Hard Wayに対する否定的な批判にもかかわらず、David SchlesingerとAmazon reviewersは、この本が価値があることに同意しています。 また、Stack Overflowに質問を投稿する前に、デューデリジェンスを必ず行ってください。そのコミュニティは時々ややこしいことがあります。

リアルPythonコース、パート1

実際のPythonチーム(Real Python, 2017)

Real Python Logo

この電子書籍は、Real Python course seriesの3つのうちの最初のものです(これまでのところ)。 それはあなたを立ち上げて走らせることを目標として書かれており、この目標を達成する上で素晴らしい仕事をしています。 この本は、説明文、コード例、およびレビュー演習を組み合わせたものです。 散在するレビュー演習は、学んだことをすぐに適用できるようにすることで学習を強化します。

以前の書籍と同様に、Pythonをコンピューターにインストールして実行するための明確な手順が事前に提供されています。 セットアップセクションの後、データ型の概要を説明するのではなく、Real Pythonは単に文字列から始まり、実際には非常に徹底的です。30ページに進む前に文字列のスライスを学習します。

次に、この本は、適用できるクラスメソッドのいくつかをどのように使用するかを示すことにより、Pythonのフレーバーを十分に理解できるようにします。 次に、関数とループの作成、条件付きロジックの使用、リストと辞書の操作、ファイルの読み取りと書き込みを学びます。

その後、物事は本当に楽しくなります! pipを使用して(およびソースから)パッケージをインストールする方法を学んだら、Real Pythonは、Python内からSQLを使用し、numpyを使用してWebページからデータを取得し、PDFファイルの操作と操作について説明します。 sとmatplotlibは科学計算を行い、最後にEasyGUItkinterを使用してグラフィカルユーザーインターフェイスを作成します。

Real Pythonについて私が最も気に入っているのは、基本を徹底的かつ親しみやすい方法でカバーすることに加えて、この本は、Webスクレイピングのように、他のどの本もヒットしないPythonのより高度な使用法を探求していることです。 また、2つの追加ボリュームがあり、より高度なPython開発に使用されます。 (Reviewed by David Schlesinger.)

Disclaimer:数年前、まだベータ版であったときに、最初にReal Pythonの本を使い始めました。 私はそのとき、そして今でも考えながら、Python言語とその使用方法を学ぶのに利用できる最高のリソースの1つであると考えました。 Real Python Webサイトでの私の記事の執筆は、ごく最近の開発であり、レビューは完全に独立しています。 —デビッド

子供向けのベストPythonブック

以下の本は、子供たちにコードを教えることに興味がある大人を対象にしていますが、途中で学習することもあります。 これらの本は両方とも、9歳または10歳の子供に推奨されていますが、年長の子供にも最適です。

これらの本は、年齢に応じて、子供に渡すだけのものではないことに注意することが重要です。 Pythonを子供と一緒に学びたい親にとって理想的です。

Python for Kids:遊び心のあるプログラミング入門

ジェイソンR. ブリッグス(No Starch, 2013)

Python for Kids: A Playful Introduction to Programming

「遊び心」が正しい! これは、タイトルにもかかわらず、すべての年齢層にとって楽しい本です。 明確でわかりやすいPythonプログラミング入門を提供します。 それはおおまかに説明されており、例はわかりやすく明確に提示されています。また、基本的な知識を習得したい人のための堅実なガイドです。

この本は、Windows、OS X、Ubuntu Linuxのいずれであっても、システムにPythonをインストールするための優れた詳細なガイドから始まります。 次に、Pythonシェルの紹介と、単純な計算機としての使用方法について説明します。 これは、変数や算術演算などのいくつかの基本概念を紹介するのに役立ちます。

次に、反復可能要素に取り組みます。この章では、文字列、リスト、タプル、および辞書を段階的に処理します。

それが完了すると、Pythonturtleライブラリを使用して、子供たちにコードを教えるための一般的なフレームワークであるタートルグラフィックスの操作を開始します。 そこから、本は条件付きステートメント、ループ、関数、およびモジュールに進みます。

クラスとオブジェクトについて説明し、続いてPythonの組み込み関数に関する非常に優れたセクションに続き、いくつかの便利なPythonライブラリとモジュールに関するセクションに続きます。 タートルグラフィックスについてさらに詳しく説明します。その後、ユーザーインターフェイス、より優れたグラフィックス、さらにはアニメーションを作成するためのtkinterを紹介します。

これで、本の第1部「プログラムの学習」を終了し、残りは2つの楽しいアプリケーションプロジェクトの構築に焦点を当てています。 最初のプロジェクトは、Bounce!と呼ばれるPongのシングルプレイヤーバージョンを構築することです。 これは、関数、クラス、および制御フローのプログラミングコンセプトを、tkinterを使用してインターフェイスを作成し、キャンバスに図解し、幾何学的計算を実行し、イベントバインディングを使用して対話性を作成するタスクと統合します。

2番目のプロジェクトでは、横スクロールビデオゲームを作成します。 出口のためのバッターレース。 このゲームは、バウンスと同じ概念とタスクの多くを適用します! しかし、より深く、複雑さが増します。 その過程で、ゲームのアセットを作成するために使用されるオープンソースの画像操作プログラムGIMPも紹介されます。 この本は、これらの2つのゲームから驚くほど多くのマイルを獲得します。そして、それらを機能させることは有益であり、とても楽しいものです。

私はこの本が本当に好きです。 若くても心の若さでも、楽しく親しみやすいPythonとプログラミングの入門書を探しているなら、この本をお楽しみください。 (Reviewed by David Schlesinger and Steven C. Howell.)

子供にコードを教える:Pythonプログラミングの親に優しいガイド

ブライソンペイン(No Starch, 2015)

Teach Your Kids to Code: A Parent-Friendly Guide to Python Programming

この本はPython for Kidsに似ていますが、タイトルが示すように、子供(または複数の子供)と一緒に働く大人がコーディングを学ぶことを目的としています。 この本をほとんどのintroductory booksと区別する1つの点は、ほぼすべてのページで色とイラストを使用していることです。 この本はよく書かれており、子どもたちに問題解決能力を教える方法として、コードの学習を紹介しています。

よくあることですが、この本はPythonインストールガイドから始まります。 Python for Kidsと比較すると、この本のガイドはより大雑把ですが、完全に適切です。

最初のアクティビティは、亀のグラフィックです。 回転した四角形の描画に関する多くの基本的なバリエーションが、最初に一般的な概念を紹介するために、多くの基本的な説明なしで提示されますが、セクションの終わりまでに、かなりよく理解できます。基本。

次に、Pythonでの計算、変数、数学について説明します。 文字列がカバーされると、この本はそのすべてをタートルグラフィックスに戻し、以前に行われた作業を強化および調査します。 この時点までに、コードの説明は非常に明確であり、行ごとの詳細が明示されています。 提示されたコードを誤解するのは難しいでしょう。

次に、eval()関数と同様に、リストについて説明します。 ループが導入され、タートルでますます複雑なグラフィックスを作成するために使用されます。 ブール論理と演算子とともに条件式が次に来ます。

randomライブラリは、推測ゲームとタートルグラフィックスで作成されたランダムに配置されたスパイラルで導入されています。 ローリングダイスとピッキングカードを実装することにより、ランダム性をさらに探索します。これにより、ゲームヤッツィーと戦争が作成されます。

次に、機能、より高度なグラフィックス、およびユーザーインタラクションについて調査します。

この本は、PyGameを使用してさらに高度なグラフィックスとアニメーションを作成し、ユーザーとの対話を使用して非常に簡単な描画プログラムを作成する方法をカバーしています。

この時点で、実際のゲームを作成するためのすべてのツールが用意されています。 Pongのフル機能バージョンとバブルポップゲームの両方の開発が紹介されています。 両方とも、いくつかの課題を提起し関心を維持するのに十分な深さを提供します。

この本で一番気に入っているのは、プログラミングに関する多くの課題と、各章の最後にある優れた要約です。 あなたとあなたの子供がプログラミングに興味を持っているなら、この本はあなたとあなたの両方に良い距離を取り、あなたはたくさんの楽しみを持っているでしょう。 著者として、博士 ブライソン・ペインは、his recent TEDx talkで、「快適ゾーンから出て、テクノロジーの言語で読み書きができるようになる」と述べています。 (Reviewed by David Schlesinger and Steven C. Howell.)

最高の中級および上級Pythonブック

Pythonを知ることは1つのことです。 Pythonicとは何かを知るには練習が必要です。 Pythonの参入障壁が低いため、他の言語よりも能力が低い、スタイルが重要でない、またはベストプラクティスが好みの問題であるという誤った考えを人々に与えることがあります。 CやFortranのようなPythonコードを見たことがありますか?

Pythonの効果的な使用方法を学習するには、内部でPythonが何をしているかをある程度理解する必要があります。 Pythonicプログラミングは、Python言語の実装方法を利用して、コードの効率を最大化します。

幸いなことに、学んだことを学び、スキルをレベルアップするのに役立つ、専門家のガイダンスが満載の優れた本がいくつかあります。 このセクションのどの本でも、Pythonプログラミングの概念をより深く理解し、developer-stylePythonコードの書き方を学ぶことができます。 これらは入門書ではありません。 開始の基本は含まれていません。 これらの本は、すでにPythonでコーディングしていて、本格的なPythonistaになるためのパスでスキルをさらに磨きたい場合に役立ちます。

Pythonの秘cks:すばらしいPython機能のビュッフェ

ダン・バッダー(dbader.org, 2017)

Python Tricks

この本は、Pythonのより深い理解を得るために書かれた、あまり知られていない価値のあるPythonの機能とベストプラクティスを示しています。 43のサブセクションはそれぞれ、Pythonトリックと呼ばれる異なる概念を提示し、その概念を活用する方法を説明する簡単なダイジェストコード例とディスカッションを示します。

本の内容は次のセクションに分かれています。

  • よりきれいなPythonのパターン

  • 有効な機能

  • クラスとOOP

  • Pythonの一般的なデータ構造

  • ループと反復

  • 辞書のコツ

  • Pythonic Productivity Techniques

表紙に記載されているように、コンテンツは「ビュッフェ」として構成されており、各サブセクションは自己完結型のトピックであり、簡単な紹介、例、ディスカッション、およびKey Takeawaysのリストが含まれています。 そのため、最も魅力的なセクションに自由にジャンプしてください。

本に加えて、これを電子書籍として購入したときに利用できる12のボーナスビデオを特に楽しみました。 平均長は11分で、昼食をとるのに最適です。 各ビデオは、再現が簡単で明確かつ簡潔なコード例を使用して、異なる概念を示しています。 いくつかのビデオはおなじみの概念をカバーしていますが、ドラッグすることなく興味深い洞察を提供しました。 (Reviewed by Steven C. Howell.)

Disclaimer:この本はReal Pythonを通じて公式に配布されていますが、RealPythonとの接続とは関係なくお勧めします。 この本を購入したのは、Real Pythonを書く機会を得る前の最初のリリース時でした。 この本の価値のさらなる証拠については、このレビューの時点で、Amazon reviews:148、5つ星のうち平均4.8をチェックしてください。 —スティーブ

流FluなPython:明確で簡潔で効果的なプログラミング

ルシアーノ・ラマーリョ(O’Reilly, 2014)

Fluent Python

この本は、Python 3に精通したい経験豊富なPython 2プログラマ向けに書かれています。 したがって、この本は、Pythonの基礎2または3の強固な基礎を持ち、スキルを次のレベルに引き上げたい人に最適です。 さらに、この本は、「Pythonで<x>を実行するにはどうすればよいですか?」を調べたい別の言語の経験豊富なプログラマーのリファレンスとしても役立ちます。

本はトピックごとに構成されているため、各セクションを個別に読むことができます。 この本で取り上げられているトピックの多くは入門書にありますが、Fluent Pythonはより詳細な情報を提供し、Python言語のより微妙で見過ごされている機能の多くを明らかにしています。

この章は、次の6つのセクションに分かれています。

  1. Prologue:Pythonのオブジェクト指向の性質と、Pythonライブラリの一貫性を維持する特別なメソッドを紹介します

  2. Data Structures:シーケンス、マッピング、セット、およびstrbytesの違いをカバーします

  3. Functions as Objects:関数がPython言語のファーストクラスオブジェクトである場合の結果を説明します

  4. Object-Oriented Idioms:参照、可変性、インスタンス、多重継承、および演算子のオーバーロードが含まれます

  5. Control Flow:基本的な条件を超えて拡張され、ジェネレーター、コンテキストマネージャー、コルーチン、yield from構文、およびasyncioを使用した並行性の概念をカバーします。

  6. Metaprogramming:クラスのあまり知られていない側面を調査し、動的な属性とプロパティ、属性記述子、クラスデコレータ、およびメタクラスについて説明します。

ほとんどすべてのページにコード例があり、コードの行を役立つ説明にリンクする番号付きのコールアウトがあり、この本は非常に親しみやすいものです。 さらに、コード例は、提示された概念を探索および学習するための実用的なアプローチである、対話型Pythonコンソールを対象としています。

Pythonの質問があるときにこの本に目を向け、Stack Overflowで得られる説明よりも詳細な説明が欲しいと思います。 また、少しダウンタイムがあり、何か新しいことを学びたいときにも、この本を読んで楽しんでいます。 私はこの本から最近学んだ概念が、私が解決しなければならない問題の完璧な解決策であることが、偶然にも何度かありました。 (Reviewed by Steven C. Howell.)

効果的なPython:より良いPythonを書く59の方法

ブレット・スラトキン(Addison-Wesley, 2015)

Effective Python: 59 Ways to Write Better Python

この本は、Pythonのベストプラクティス、あまり知られていない機能、組み込みツールを教えるためにPythonの基本的な理解に基づいて構築された59の独立した記事のコレクションです。 トピックの複雑さは、使用しているPythonバージョンを認識するという単純な概念から始まり、メモリリークを識別するというより複雑で、通常は無視される概念で終わります。

各記事は、サンプルコード、ディスカッション、および覚えておくべき事柄のリストの組み合わせです。

各記事は独立しているので、これは飛び回るのに最適な本であり、最も適切または興味深いトピックに集中することができます。 これにより、一度に1つの記事を読むのにも最適です。 各記事の長さは約2〜4ページであるため、1日に1つの記事を読む時間を作って、2〜3か月で本を仕上げることができます(週末に読むかどうかによって異なります)。

記事は次の8つの章に分類されます。

  1. Pythonic Thinking:Pythonの実装方法を活用しながら、一般的なタスクを実行するための最良の方法を紹介します

  2. Functions:Python関数の微妙な違いを明確にし、関数を使用して意図を明確にし、再利用を促進し、バグを減らす方法の概要を示します

  3. Classes and Inheritance:Pythonクラスを操作する際のベストプラクティスの概要

  4. Metaclasses and Attributes:メタクラスのやや不思議なトピックを明らかにし、メタクラスを使用して直感的な機能を作成する方法を教えます

  5. Concurrency and Parallelism:Pythonでマルチスレッドアプリケーションを作成する方法を説明します

  6. Built-in Modules:コードをより便利で信頼性の高いものにするために、Pythonのあまり知られていない組み込みライブラリをいくつか紹介します

  7. Collaboration:適切なドキュメント、パッケージ化、依存関係、および仮想環境について説明します

  8. Production:デバッグ、最適化、テスト、およびメモリ管理のトピックをカバーしています

Pythonの強固な基盤があり、穴を埋め、理解を深め、Pythonのあまり目立たない機能のいくつかを学習したい場合、これは素晴らしい本です。 (Reviewed by Steven C. Howell.)

Pythonクックブック

デビッド・ビーズリー&ブライアン・K ジョーンズ(O’Reilly, 3rd edition, 2013)

Python Cookbook

この本を際立たせるのは、その詳細レベルです。 コードcookbooksは通常、日常のタスクを巧妙に行う方法を説明するための短くて甘いマニュアルとして設計されています。 この場合、Python Cookbookの各レシピには、拡張コードソリューションと、ソリューションの特定の要素に関する作成者のディスカッションが含まれています。

各レシピは、「ラップされた関数の呼び出しシグネチャに追加の引数を追加するデコレータを書きたい」などの明確な問題ステートメントで始まります。次に、現代的で慣用的なPython 3コード、パターン、およびデータ構造を使用するソリューションにジャンプし、多くの場合、4〜5ページでソリューションを説明します。

より複雑で洗練された例と、序文の著者自身の推奨に基づいて、これはおそらく私たちのリストの中で最も先進的なPython本です。 それにもかかわらず、自分が中級のPythonプログラマーであると考えても怖がらないでください。 とにかく、誰が審査していますか? 次のような古い言葉があります:

「より良いバスケットボール選手になるための最良の方法は、最悪の選手を倒すのではなく、見つけられる最高の選手に負けることです。」

完全に理解していないコードブロックが表示される場合があります。数か月後に戻ってきます。 いくつかの追加の概念を取り上げた後、これらのセクションを読み直してください。突然、クリックします。 ほとんどの章はかなり簡単なものから始まり、その後徐々に強烈になります。

本の後半では、デコレータパターン、クロージャ、アクセサ関数、コールバック関数などのデザインを説明します。

信頼できる情報源から読むことは常に素晴らしいことであり、この本の著者は確かにその法案に適合しています。 David Beazleyは頻繁にkeynote speaker at events such as PyConであり、Python Essential Referenceの作成者でもあります。 同様に、Brian K. ジョーンズはCTOであり、Pythonマガジンの作成者であり、Python User Group in Princeton (PUG-IP)の創設者です。

この特定のエディションは、Python 3.3で作成およびテストされています。 (Reviewed by Brad Solomon.)


コーディングしてください!

Pythonの素晴らしい点の1つは、他の多くの言語と比較して、参入障壁が比較的低いことです。 それにもかかわらず、Pythonの学習は終わりのないプロセスです。 この言語は非常に多様なタスクに関連しており、非常に進化しているので、発見して学ぶべき何かが常にあります。 1週間か2週間で楽しいことをするのに十分なPythonを手に入れることができますが、20年間Pythonを使用している人は、この柔軟で進化する言語でできる新しいことをまだ学んでいると言うでしょう。

最終的にPythonプログラマーとして成功するためには、強固な基盤から始めてから、言語の仕組みとその最適な使用方法をより深く理解する必要があります。 強固な基盤を築くために、best books to learn Pythonのいずれかを間違えることはできません。 子供と一緒にPythonを学びたい場合、または子供たちのグループに教えたい場合は、list of best Python books for kidsを確認してください。 足を濡らした後、best intermediate and advanced Python booksのいくつかをチェックして、コードの効率を向上させる、あまり明白ではない概念を深く掘り下げてください。

これらの本はすべて、合法的に自分をPythonコーダーと呼ぶために知っておくべきことを教えてくれます。 不足している唯一の成分はyouです。