Pythonでのプログラミング-それについてもっと学びたい、または他のプログラミング言語を学びたい人のためのコース

「Pythonをコーディングする喜びは、読者を死に追いやる些細なコードではなく、少量の明確なコードで多くのアクションを表現する短く、簡潔で読みやすいクラスを見ることです。」
グイド・ファン・ロッサム

Pythonは、書きやすく、読みやすいプログラミング言語です。 言語を深く掘り下げ CS Centerのすべての機能の使用方法を理解するために、 CS Centerの秋コースの 13の講義を提供しています。 講義は、JetBrainsの開発者でコンピューターサイエンスセンターの教師であるSergey Lebedevによって行われます。

プログラミング言語を習得するために構文を習得するだけでは十分ではありません。言語のイディオムを理解し、その使用方法を学ぶ必要があります。 コース中、セルゲイは生徒にPython言語のイディオムと可能性を紹介します。

写真は、2014年の秋にストラスブールで撮影されました。このコースを初めて読む2週間前です。

コース講義


YouTube のプレイリストにあるすべての講義のビデオ。

開始する


誰が、いつ、なぜPython言語を発明したのか。 言語通訳。 鳥瞰図からの言語構文。 IPythonインタラクティブシェル。

Pythonの関数について知りたいことすべて


関数宣言の構文。 引数のパックとアンパック。 キー引数とデフォルト引数。 開梱および割り当て演算子。 スコープ、LEGBルール、 globalおよびnonlocal 。 関数型プログラミング、匿名関数。 mapfilter 、およびzip関数。 リスト、セット、辞書のジェネレーター。 PEP 8について少し。

デコレータとfunctoolsモジュール


デコレータの構文。 引数あり、引数なしのデコレータ。 デコレータの使用例。 functoolsモジュール。

文字列、バイト、ファイル、およびI / O


文字列リテラルと生の文字列。 文字列とユニコード。 文字列を操作する基本的な方法。 モジュールstring 。 バイト エンコーディング ファイルとファイルオブジェクト。 ファイルを操作する方法。 ioモジュール。

組み込みのコレクションとコレクションモジュール


また、組み込みのコレクション:タプル、リスト、セット、辞書-詳細なウォーク、メソッドの概要、例。 collectionsモジュールに関するほとんどすべて:名前付きタプル、カウンター、 defaultdictOrderedDict

クラス、パート1


クラス宣言の構文。 属性、関連メソッドおよび非関連メソッド__slots____slots__ 。 静的メソッドとクラスメソッド。 プロパティ、@ propertyデコレータ。 継承、メソッドのオーバーロード、およびスーパー関数。 クラスデコレータ。 魔法の方法。

例外とコンテキストマネージャー


例外、それらが必要な理由、およびそれらの処理方法。 組み込み例外と基本クラスBaseExceptionおよびExceptiontry...except..else..finally 。 コンテキストマネージャーとcontextlibモジュール。

イテレーター、ジェネレーター、およびitertoolsモジュール


2つのイテレータプロトコル: __next__ + __iter__および__getitem__ 。 反復子とforループ、およびnot in演算子とnot in演算子。 ジェネレーター、 yield 。 イテレータ、コルーチン、コンテキストマネージャなどのジェネレータ。 itertoolsモジュール。

モジュール、パッケージ、インポートシステム


モジュール importおよびfrom ... importステートメント。 パッケージ。 相対および絶対インポート。 __init__ -facade。 繰り返しになりますが、 importステートメントは詳細な説明です。

クラスパート2


記述子:どうして? コンストラクター__new__typeクラス、およびメタクラス。 組み込み型の継承。 abcおよびcollections.abcモジュール。

テスト中


テストする理由 通訳者テストとdoctest。 unittestモジュール。 py.testパッケージは1桁優れています。 プロパティテストとhypothesisパッケージ。

Pythonの高速化、高速化


timeitcProfileおよびline_profilerを使用したPythonコードランタイムの測定。 NumPyについて少し。 NumbaおよびCythonを例として使用したPythonコードのJITおよびAOTコンパイル。

マルチスレッドとGIL


モジュールthreadingqueueconcurrent.futures 。 Pythonでの並列コンピューティングのためのスレッドの使用。 ギル 並行性と競争力。 asyncioモジュール。 multiprocessingモジュール。

次は何ですか


このコースの実用的なタスクは、CSセンターの学生のみが利用でき、学生年に1回春に募集されます。 何らかの理由でセンターでトレーニングを受けられない場合は、コースのビデオを見るのをやめるのではなく、Pythonで日常の課題を解決することをお勧めします。

さまざまな言語について、 Awesome JavaAwesome R、 Awesome C ++などの優れたライブラリのリストがあります。 もちろん、そのようなリストはPythonに当てはまります。 次にデータベース、ログ、または画像分析を操作するためにライブラリが必要になったときは、リストの適切なセクションに進んでインスピレーションを得てください。

Source: https://habr.com/ru/post/J280426/


All Articles