すべてのスキルレベルに対応する7冊のすばらしいPythonブック

プログラミング言語の人気が高い、または強力であるほど、それに関する多くの本だけでなく、多様な本を見つける可能性が高くなります。Pythonの人気が急上昇するにつれて、人々が言語を学び、その複雑さを習得するのに役立つように作成された本の数と種類も増えています。

ここでは、初心者向けガイドからパワーPythonの習熟度まで、Pythonを使用したプログラミングに関する最高の本を7冊紹介します。始めたばかりの場合でも、Pythonをしばらく使用している場合でも、おそらくここに本があります。いくつかは、オンライン版またはPDF版で無料で入手できます。 

Pythonで退屈なものを自動化する

プログラミング言語、またはプログラミング一般のほとんどの紹介は概念的なものです。彼らは抽象的にプログラミングについて話します。RobSweigartの Automatethe Boring Stuff with Python は、特にプログラミングについて語っています。これは、面倒なタスクをきびきびとしたPythonスクリプトに変換する方法を学ぶ方法として、Pythonのコースを使用しています。

Automate は、Pythonとコンピューティングの初心者を対象としています。読者がシンプルなIDE(「Mu」エディター)に慣れることで始まり、入力、フロー制御、関数、オブジェクトコレクション(リスト、辞書)の使用、入力とパターンマッチングの検証、および操作を順を追って説明します。ファイル。

本の後半は、よりタスク指向とプロジェクト指向です。スプレッドシートやテキストドキュメントの操作、メールの送信、画像の操作、GUI操作の自動化などの一般的な自動化タスクについて説明します。

何が 自動化 レッスンの現在のレベルに適しているプロジェクト、貴重な初心者の本はそれがすべての道に沿って、中に転がる方法です-単純なとして(詳細はいえ)じゃんけんのティーチフロー制御へのゲーム、またはA文字列操作を教えるためのPigLatinジェネレーター。また、私たちがやりたいこと(最初にこれ、次にこれ、次にこれ)をプログラムの機能に変換する方法を何度も何度も計画するのにも時間がかかります。

Pythonで退屈なものを自動化すること は複数のフォーマットで利用可能です:無料のオンライン版、電子ブックと印刷版、そしてUdemyコース(50ビデオ)。

アマゾン://www.amazon.com/Automate-Boring-Stuff-Python-2nd/dp/1593279922

Pythonのバイト

「気取らない」は、SwaroopChitlurのAByte ofPythonを説明するのに最適な言葉 です。これは、最も装飾されていないものの1つであるとしても、Pythonに関する最も簡単でアクセスしやすいガイドです。ギミック、プロジェクト、かわいいイラストは使用していませんが、それらを省略することも最大の強みです。読者とレッスンの間に何もありません。

この本は、最初にPythonインスタンスのセットアップと構成、次にREPLとエディターの使用について読者をガイドします(PyCharmはそこでほとんどの報道を取得します)。そこから、変数と型、演算子、制御フロー、関数、モジュール、データ構造(OOPに関する完全な章がありますが、クラスを含む)、I / O、例外、およびリスト内包表記やデコレーターなどの概念の概要を順を追って説明します。

この本にはいくつかのわずかな欠点があります。1つは組織化です。ほとんどのチュートリアルでかなり早く教えられているため、入力と出力の処理はかなり遅くなります。また、コンテキストマネージャーなど、基本的なPythonの概要に含める価値のあるいくつかの項目は、まったくカバーされていません。しかし、全体として、この本は言語への飾り気のない良い入門書です。

Byte of Python は、名目上、Webベースの本として無料で入手できますが、PDFダウンロードおよび印刷されたハードコピーとしても入手できます。英語以外の言語への翻訳もたくさんあります。

Amazon(Kindleのみ)://www.amazon.com/Byte-Python-Swaroop-CH-ebook/dp/B00FJ7S2JU

Pythonの学習、第5版

プログラミングPython、第4版

完全な包括性とオールインワン性のために、MarkLutzのLearningPython と ProgrammingPythonに勝るものはありません 。どちらの本もそれぞれ1600ページを超えて いますが、サイズが気になることはありません。端から端まで読むのではなく、局所的に消化することを目的としています。

Python 3.3以降、Pythonのほぼすべてのトピックは、  Learning Pythonでカバーされており、徹底的にカバーされています。たとえば、デコレータについて知っておくべきことをすべて学びたい場合、そのトピックに関する章は、このテーマに関するミニコースを構成します。

Pythonのプログラミング とは、Pythonを使用して実際のアプリケーションを構築することです。言語のコンポーネントを説明するだけでなく、システムプログラミング、GUI、インターネットクライアントとサーバー、データベース、Cとの統合などについても説明します。

Python学習の最大の欠点 は、そのサイズではなく、その年齢です。第5版は2013年にリリースされ、Python 3.3と2.7の両方をカバーしているため、それ以降Pythonに導入された重要なイノベーションの多くはカバーしていません。2016年の時点で、Lutzは、出版社との文書化された問題もあり、更新する予定はありませんでした。 

アマゾン://www.amazon.com/Learning-Python-5th-Mark-Lutz/dp/1449355730; //www.amazon.com/Programming-Python-Powerful-Object-Oriented-dp-0596158106/dp/0596158106/

高性能Python:人間のための実用的なパフォーマンスプログラミング

Pythonをより高速またはより効率的にすることにリモートで興味がある人は、この本をコレクションに追加する必要があります。

「Python」と「高性能」は、同じように話されることはあまりありません。Pythonが便利に提供するものは、生のマシンレベルの速度を奪います。しかし、それは高速Pythonが不可能であることを意味するものではありません。多くの「不可能な」ものと同様に、もう少し作業が必要です。

MichaGorelickとIanOzsvaldによるHighPerformance Python:Practical Performant Programming for Humansは、経験豊富なPythonプログラマーに、単純な純粋なPythonの最適化からカスタムCコードのローリングまで、Pythonコードを高速化するすべての方法を紹介します。この本は、Pythonアプリのパフォーマンスの問題を診断および修正するための重要なスキルであるアプリケーションプロファイリングの詳細から始まり、次に特定の最適化について説明します。

  • リストと辞書やセットなど、さまざまなデータ構造のアクセスパターンとbig-Oパフォーマンス。
  • ジェネレータを使用して、大きな計算問題のためにメモリを節約する方法。
  • 行列とベクトルの使用—基本的に、より高速な計算のためのNumPyとPandasの使用の概要。
  • Cython、Numba、PyPy、およびその他のサードパーティのコンパイラとランタイムを使用して、マシンレベルの速度を実現します。それらのそれぞれの議論は、それ自体で本全体を占める可能性があるため(Cythonの場合はそうです)、ここでは最も基本的で一般的なユースケースのみを取り上げます。しかし、あなたはさらなる学習のために十分に準備ができているでしょう。
  • 非同期プログラミングを使用して、複数のI / O依存操作を高速化します。
  • マルチプロセッシングを使用してGILを回避し、クラスタリングとジョブキューを使用して作業をさらに分割します。

機械学習パイプラインのデプロイなど、実際のP​​ythonパフォーマンスの問題の解決策に関するメモも長い章で取り上げられています。この本の第2版では、Pythonの最新バージョンのテキストが更新され、GPUの操作に関する資料が含まれています。

アマゾン://www.amazon.com/High-Performance-Python-Performant-Programming/dp/1492055026/

流暢なPython

基本をマスターしたら、次は何をしますか? 流暢なPython がその質問に答えます。

独自のプログラムを作成するのに十分なPythonをすでに知っているプログラマーは、次の段階に進むのに苦労することがよくあります。Pythonの独自の機能セットを利用して、真に強力なソフトウェアを作成します。 流暢PythonのルチアーノRamalhoことで、専門家が活用としてPythonの多くの重要な側面を通じて、プログラマを歩く:Pythonのデータモデルとマスタリング「dunder方法を、」セットや辞書などのデータ収集の高度利用を、作成するオブジェクトの記録としてその仕事(ではありませんクラスだけですが、名前付きのタプルとデータクラス)、オブジェクトとしての関数の使用、タイプヒントなどがあります。

一部の資料(ラムダなど)は、中程度の経験を積んだPythonプログラマーにとっても新しいものではないかもしれませんが、この本は、これらの要素が上級プログラマーにとってどのように価値があるかを示しています。以前にこれらのPython機能を使用したことがある場合でも、この本では、それらを使用してより堅牢なプログラムを構築する方法と、高度な作業のために同様の選択肢(構造体やメモリビューなど)から賢く選択する方法を示します。

この記事の執筆時点で、Fluent Python、2nd Edition は、O'Reillyメンバーシップの初期リリースドラフトとして入手できます。または、Amazonで予約注文することもできます。

アマゾン://www.amazon.com/Fluent-Python-Concise-Effective-Programming/dp/1492056359

Pythonだと思う

この本のサブタイトルは「コンピュータ科学者のように考える方法」であり、本の意図のヒントを与えてくれます。Allen B.DowneyによるThinkPythonは、初心者を対象としたPythonの学習ガイドですが、その大きな目標は、読者がプログラミングとは何か、プログラマーであるとはどういうことか、コンピュータープログラムがそのように機能する理由を理解できるようにすることです。彼らはそうします。 Pythonは、これらのアイデアが探求される分野にすぎません。 Pythonの習得がいかに簡単かを考えると、それは賢明な選択です。

Python は正式な概念から始まると考えてください。プログラムとは何か、入出力とは何か、型と値とは何か、そしてプログラムがそれらの用語で情報を処理する方法です。そこから、ステートメントと演算の順序がどのように機能するか、そしてステートメントを式と関数につなぎ合わせる方法に移ります。条件の処理と制御フロー、反復、コレクションタイプ(文字列、リスト、辞書)、ファイルI / O、クラス、継承、および「Goodies」とタグ付けされた多数の便利なPython機能は、すべて独自の章を受け取ります。

Think Pythonの最も魅力的な点 は、明確で直接的な言語は別として、情報の各ビットをコンピューターとコンピュータープログラムの動作の中心的なテーマに常に関連付ける方法と、プログラミングでどの手法を使用して目的を達成するかです。新規参入者にとって、これは彼らが最初に理解するよりも重要です。

Pythonは、PDFまたはHTML形式の無料の電子書籍として入手できると思い ます。 

アマゾン://www.amazon.com/gp/product/1491939362