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

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

グイド・ファン・ロッサム


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



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


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



コース講義



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



開始する



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



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



関数宣言の構文。 引数のパックとアンパック。 キー引数とデフォルト引数。 開梱および割り当て演算子。 スコープ、LEGBルール、 global



およびnonlocal



。 関数型プログラミング、匿名関数。 map



filter



、およびzip



関数。 リスト、セット、辞書のジェネレーター。 PEP 8について少し。



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



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



モジュール。



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



文字列リテラルと生の文字列。 文字列とユニコード。 文字列を操作する基本的な方法。 モジュールstring



。 バイト エンコーディング ファイルとファイルオブジェクト。 ファイルを操作する方法。 io



モジュール。



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



また、組み込みのコレクション:タプル、リスト、セット、辞書-詳細なウォーク、メソッドの概要、例。 collections



モジュールに関するほとんどすべて:名前付きタプル、カウンター、 defaultdict



OrderedDict







クラス、パート1



クラス宣言の構文。 属性、関連メソッドおよび非関連メソッド__slots__



__slots__



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



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



例外、それらが必要な理由、およびそれらの処理方法。 組み込み例外と基本クラスBaseException



およびException



try...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の高速化、高速化



timeit



cProfile



およびline_profiler



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



マルチスレッドとGIL



モジュールthreading



queue



concurrent.futures



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



モジュール。 multiprocessing



モジュール。



次は何ですか



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



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




All Articles