Python
Pythonは高水準な汎用プログラミング言語です。 Pythonの設計思想は、コードの読みやすさを重視しています。 たとえばブロックは波括弧 { } ではなくインデントで構造化されているなど、その構造に対するアプローチは独特です。
また、Pythonは、オブジェクト指向・インタープリタ型・動的型付け・クロスプラットフォームなプログラミング言語です。 これらのアプローチは、プログラマーが小規模および大規模なプロジェクトで自己説明的で論理的なコードを書けるようにすることを目的としています。
目次
[編集]進捗状況の凡例
入門
[編集]- 基本事項 — pythonの実行方法、Hello, world!
- 変数と代入 — 変数とは、代入、識別子
- 数値入力と文字入力と出力表示 — input(), int(), float()
- 条件分岐と繰り返し — if, else, for, while
- 演算子 —
- 関数 — def、引数、ローカル変数、id()、戻り値、キーワード引数、デコレーター
基礎
[編集]- コレクション — 複数の要素をまとめたデータ構造です。
- 三種の内包表記とジェネレーター式
- モジュールのインポート — math モジュール、random モジュール、importlib
- array — 効率的な数値計算のために配列を提供する
- 例外処理 — try、except、finally、複数の例外の場合分け
- クラス — クラス定義、__init__()、self
- ファイルの書き込みと読み込み — open関数, with文を使ったリソース管理、オープンモード、write、readline
応用
[編集]モジュール
[編集]標準モジュール
[編集]標準モジュール — 標準モジュールの一覧
サードパーティモジュール
[編集]- その他のモジュール —
- pip — Pythonのパッケージ管理システム
- NumPy — 数値計算を効率的かつ簡単に行うためのライブラリ
- Pandas — データ分析やデータ処理において高度な機能を提供するライブラリ
- Transformers — ニューラルネットワークなどの機械学習モデルのデプロイなどに使用されるライブラリ。
- TensorFlow — ニューラルネットワークなどの機械学習アプリケーションの実装に使用される数値計算ライブラリ
- サードパーティデータベースモジュール — 拡張的データベースの利用
- mysql — mysql、aiomysql
- sqlarchemy
- matplotlib — グラフの作成
- requests — HTTPリクエストを簡単に送信するためのライブラリ
- BeautifulSoup — HTMLやXMLのパースやスクレイピングに使用されるライブラリ
- Django — Webアプリケーションの開発に使用されるフルスタックフレームワーク
- Flask — Webアプリケーションの開発に使用されるマイクロフレームワーク
- Pygame — ゲーム開発に使用されるマルチメディアライブラリ
- OpenCV — コンピュータビジョンタスク(画像処理や機械学習)に使用されるライブラリ
- gradio — 機械学習モデルのデプロイや対話型UIの作成を行うためのライブラリ
- streamlit — データの可視化や機械学習アプリケーションの作成を行うためのライブラリ
?
- Scikit-learn — 機械学習のさまざまなタスク(分類、回帰、クラスタリングなど)をサポートするライブラリ
- Keras — 深層学習モデルの構築とトレーニングを容易に行うための高水準のニューラルネットワークAPI
- NLTK — 自然言語処理(NLP)タスクのための豊富な言語データと機能を提供するライブラリ
- SciPy — 科学技術計算のための機能を提供するライブラリ(最適化、統計、信号処理など)
- Gensim — トピックモデリングや自然言語処理のためのベクトル空間モデルを構築するライブラリ
- PyTorch — 機械学習およびディープラーニングのためのフレームワーク
- FastAPI — 高速なWeb APIの開発を支援するマイクロフレームワーク
- Celery — 分散タスクキューの実装を可能にする非同期タスクキューライブラリ
- pytest — Pythonのテストフレームワークで、効率的で拡張可能なテストの作成をサポートする
- Scrapy — Webスクレイピングとクローリングのためのフレームワーク
- PySpark — Apache SparkのPython APIで、大規模データ処理や分散処理をサポートする
- Arrow — 効率的な日時とタイムゾーンの操作を提供するライブラリ
- Plotly — インタラクティブなグラフや可視化を作成するためのライブラリ
- Cython — Pythonのための静的型付けをサポートし、高速なC拡張モジュールを作成するためのツール
- PyQt — QtアプリケーションフレームワークのPythonバインディング
- PyPDF2: PDFファイルの操作と処理を行うためのライブラリ
- NetworkX: 複雑なネットワークやグラフの解析と可視化を行うためのライブラリ
- Seaborn: 美しいグラフと統計プロットを作成するためのライブラリ
- Cryptography: 暗号化やデータ保護のためのライブラリ
- Panda3D — 3Dゲーム開発のためのオープンソースフレームワーク
- Godot Engine — オープンソースの2Dおよび3Dゲームエンジンで、Pythonを含むさまざまなプログラミング言語をサポート
- Arcade — シンプルで使いやすい2Dゲーム開発ライブラリ
- Pygame Zero — Pygameをベースにしたシンプルなゲーム開発フレームワーク。初心者向けに適している
- Ursina — Pythonで記述された3Dゲームを簡単に作成できるライブラ
拡張モジュールの作成
[編集]リファレンス
[編集]PEPについて
PEP(Python Enhancement Proposal)は、Pythonプログラミング言語の改善や機能追加に関する提案や文書のことです。PEPはPythonコミュニティによって作成され、議論されます。Pythonの開発者やユーザーが新しいアイデアを提案し、共有するためのフレームワークとして機能しています。
PEPはさまざまなカテゴリーにわたる提案を含みます。例えば:
- 新機能の提案: 新しい機能や機能の変更についての提案が含まれます。例えば、新しい文法、標準ライブラリへの追加、言語の機能強化などがあります。
- 改善案: Pythonの改善や修正に関する提案も含まれます。これには、パフォーマンスの向上、既存の機能の改善、コードの可読性の向上などが含まれます。
- プロセスやガイドライン: Pythonコミュニティの運営や開発プロセスに関する提案もあります。例えば、コードスタイルのガイドライン、バージョン管理に関する規則、開発プロセスの改善などが挙げられます。
Python 3.12 の新機能
[編集]Python 3.12 には、いくつかの新機能が追加されています。以下にいくつかの新機能とそれらを使用するためのコード例を示します。
- Parenthesized context managers in with statements
Python 3.12 では、with ステートメントのコンテキストマネージャーに括弧を付けることができます。これにより、コンテキストマネージャーが複数の行にまたがっている場合に、より読みやすいコードを書くことができます。
- コード例
# Before Python 3.12 with open("file.txt", "r") as file1, open("file2.txt", "r") as file2: # do something with file1 and file2 # With Python 3.12 with (open("file.txt", "r"), open("file2.txt", "r")) as (file1, file2): # do something with file1 and file2
- Pattern matching improvements
Python 3.10 で導入されたパターンマッチングには、Python 3.12 で改良が加えられました。例えば、以下のように | を使用して複数のパターンをマッチングすることができます。
- コード例
# Before Python 3.12 def my_function(x): if isinstance(x, int): # do something elif isinstance(x, str): # do something else elif isinstance(x, list): # do something else else: raise ValueError("Invalid argument type") # With Python 3.12 def my_function(x): match x: case int: # do something case str: # do something else case list | tuple: # do something else case _: raise ValueError("Invalid argument type")
- New zoneinfo module for working with time zones
Python 3.9 で導入された zoneinfo モジュールは、Python 3.12 で改良が加えられました。これにより、タイムゾーンを扱うためのさまざまな機能が追加されました。
- コード例
# Before Python 3.12 import datetime import pytz tz = pytz.timezone("Asia/Tokyo") now = datetime.datetime.now(tz) # With Python 3.12 import datetime import zoneinfo tz = zoneinfo.ZoneInfo("Asia/Tokyo") now = datetime.datetime.now(tz)
整理作業中
[編集]Python/整理中 (複素数、正規表現、HTTPクライアント、JSON、pass)