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