Yomiage
メニュー

#python

20 件の記事

すべての記事
並び替えを変更 更新日時 / 降順
aiの歴史ai倫理ai法務g検定haskelljavajava実践講座pythonpython実践講座rustrust実践講座シフト演算ド・モルガンの法則プログラミングベン図人工知能代数公式過去問解説命題命題論理型と設計基数基数変換基本情報技術者基礎文法基礎理論学習ガイド学習ロードマップ実践技術応用情報技術者情報処理技術者試験数値表現数学数理統計機械学習浮動小数点深層学習真理値表社会実装算術演算総合演習補数試験対策誤差論理演算集合離散数学
投稿者: しゅりりん

プログラミング実践講座:Java・Python・Rustで初心者を卒業する学習地図

Java・Python・Rustを、文法の入門から小さなアプリを自分で改修できる段階まで学ぶ講座です。各言語20回の本文と各目次、この記事を合わせて64記事あります。 まず一つを最後まで プログラミング自体が初めてなら、短いコードで結果を確かめやすいPython編から始める順を提案します。Javaを使う予定があるならJavaからで構いません。Rustを目的に

2 0 0 0
投稿者: しゅりりん

Python実践講座 00:全20回の目次と学び方

Pythonを初めて触る段階から、小さなアプリを設計・テスト・保存・配布できる段階へ進む全20回の講座です。各回には目的、実行例、結果の読み方、練習と解答、公式資料があります。 この講座の前提 Python 3.11以降と専用の仮想環境を使います。通常の例はmain.pyとして保存して実行します。第05回と第17〜19回は複数ファイルです。標準ライブラリ中心

1 0 0 0
投稿者: しゅりりん

Python実践講座 20:卒業課題・集計と形式の変更に対応する

この回では、動くコードへ要求を追加し、壊していないことを証明します。前提は第19回までです。 卒業課題 タスクにカテゴリを追加し、カテゴリ別の未完了件数を表示するstatsコマンドを作ってください。カテゴリの未指定はgeneralとします。空の一覧でもエラーにせず、件数が0であることが伝わる出力にします。旧バージョン1のJSONも読み、カテゴリを補って新形式

1 0 0 0
投稿者: しゅりりん

Python実践講座 19:総合演習・テストとコマンドとしての配布

到達点は、別の環境でもインストールと検証ができる状態にすることです。前提は第17・18回です。 利用者のデータを使わず検証する 同じフォルダへtesttasks.pyを保存します。 コードブロック。 python -m unittest -v testtasks で二つのテストが成功します。途中のエラー表示は、失敗ケースを意図的に試したものです。テスト全体の

1 0 0 0
投稿者: しゅりりん

Python実践講座 18:総合演習・JSON保存とargparse

第17回のdomain.pyと同じフォルダにtasks.pyを作ります。保存失敗を成功に見せず、破損データを空として扱わない設計を実装します。 コードブロック。 python tasks.py add "Pythonを復習"、python tasks.py done 1、python tasks.py list の順で実行すると、ID1が完了状態で表示されま

1 0 0 0
投稿者: しゅりりん

Python実践講座 17:総合演習・タスクのモデルと入力検証

ここから第19回で、JSONへ保存できるタスク管理CLIを作ります。前提は第01〜16回です。操作はadd、list、doneです。 型注釈の先にある検証 タスクは正の整数ID、1〜200コードポイントの題名、真偽の完了状態を持ちます。題名の前後の空白を除き、改行とタブは認めません。doneを二度実行しても完了状態を保ち、存在しないIDはエラーとします。同時

1 0 0 0
投稿者: しゅりりん

Python実践講座 16:性能計測・ログ・安全な入力処理

到達点は、問題のある場所を測り、入力の境界で不正な値を止めることです。前提は第11〜15回です。 最適化の前に処理量を確認する 遅いからといって、すぐに並列化する必要はありません。全件比較を辞書検索へ変えるだけで、処理量が大幅に減る場合があります。cProfileで関数ごとの時間を調べ、timeitで小さな処理を繰り返し比較します。計測前後で入力と実行環境を

1 0 0 0
投稿者: しゅりりん

Python実践講座 15:デコレータとコンテキスト管理

到達点は、共通処理を関数へ付け加え、資源の利用範囲を明示することです。前提は第06・09回です。 関数も値として渡せる デコレータは関数を受け取り、別の関数などを返して振る舞いを包みます。ログや計測に便利ですが、何が起きるか読めないほど重ねると保守が難しくなります。まず手動で包む処理を理解します。 コードブロック。 main.pyでは、集計へ入る、total

1 0 0 0
投稿者: しゅりりん

Python実践講座 14:asyncio・スレッド・プロセスの選択

到達点は、待ち時間と計算時間を分け、並行処理の方法を選ぶことです。前提は第09・13回です。TaskGroupの例にはPython 3.11以降を使います。 awaitは待ちを他の仕事へ譲る async defで定義した関数を呼ぶとコルーチンができます。呼んだだけでは通常、処理は最後まで進みません。イベントループで実行し、awaitで他の仕事へ進む機会を渡し

1 0 0 0
投稿者: しゅりりん

Python実践講座 13:HTTPとJSON APIの境界を扱う

到達点は、通信期限、ステータス、本文、型を順に確認することです。前提は第07・10回です。 ネットワークには部分的な失敗がある 接続できない場合、接続できたがエラー応答の場合、成功応答だが本文が不正な場合は別です。すべてを「データなし」と扱うと障害に気付けません。次の例は外部サービスなしで、ローカルのJSON応答を確認します。 コードブロック。 main.p

1 0 0 0
投稿者: しゅりりん

Python実践講座 12:SQLiteとトランザクション

到達点は、SQLの値を安全に渡し、失敗した更新を取り消すことです。前提は第06・11回です。 検索できる形で保存する SQLiteは単一ファイルなどにデータを保存できるデータベースです。Python標準ライブラリのsqlite3から使えます。テーブルに型や制約を定義し、SELECTで取得、INSERTで追加、UPDATEで変更、DELETEで削除します。 コ

0 0 0 0
投稿者: しゅりりん

Python実践講座 11:unittestとデバッグで振る舞いを固定する

到達点は、正常系だけでなく境界と失敗を再現するテストを書くことです。前提は第06・10回です。 期待結果は仕様から選ぶ テストは実装をなぞるためでなく、利用者との契約を守るために書きます。「5000円以上なら送料無料」なら、4999と5000が重要です。実装と同じ式で期待値を計算すると、同じ誤りを見逃す場合があります。 次をtestfees.pyに保存します

1 0 0 0
投稿者: しゅりりん

Python実践講座 10:型注釈とProtocolで境界を明確にする

到達点は、型注釈を実行時検査と混同せず、関数の契約を示すことです。前提は第05・08回です。 型は読み手と検査道具への情報 引数と戻り値へ型を付けると、関数が何を受け取り何を返すかが分かります。mypyなどの静的型チェッカーは実行前に矛盾を探します。一方、JSONやユーザー入力の正しさは、実行時に別途検査する必要があります。 コードブロック。 main.py

1 0 0 0
投稿者: しゅりりん

Python実践講座 09:イテレータとジェネレータで逐次処理する

到達点は、全件を保持せずに処理する流れを作ることです。前提は第04・07回です。 必要になるまで作らない イテラブルはforで順に取り出せるもの、イテレータはその取り出し位置を持つものです。ジェネレータ関数はyieldで一つずつ値を返し、次に求められるまで処理を中断します。 コードブロック。 main.pyで実行すると25、45、空のリスト、0・1・4・9・

1 0 0 0
投稿者: しゅりりん

Python実践講座 08:クラス・dataclass・合成

到達点は、関連するデータとルールをまとめ、共有してよいものを区別することです。前提は第03・06回です。 クラスは状態と操作の単位 selfは操作対象のインスタンスです。各インスタンスの状態はselfに保存し、クラス属性として可変リストを置くと全インスタンスで共有される点に注意します。データを運ぶ型にはdataclassを使うと、初期化や比較の定型処理を減ら

1 0 0 0
投稿者: しゅりりん

Python実践講座 07:Path・JSON・CSV・日時

到達点は、データ形式と文字コードを明示して読み書きすることです。前提は第06回です。 データ形式には文法がある JSONは辞書や配列などの構造、CSVは表形式のデータに使えます。CSVを単にカンマでsplitすると、引用符で囲んだカンマを壊します。自分で区切り規則を推測せず、形式に対応したライブラリを使います。 コードブロック。 main.pyの出力は25、

1 0 0 0
投稿者: しゅりりん

Python実践講座 06:例外と後始末を設計する

到達点は、想定内の入力エラーと予期しない不具合を分けることです。前提は第05回です。 捕まえる範囲を狭くする tryには失敗する可能性のある操作を置き、exceptには対処を置きます。どんな例外でも成功扱いにすると、プログラムの間違いまで隠します。数値変換ならValueError、ファイルがないならFileNotFoundErrorなど、対処できる種類を選び

1 0 0 0
投稿者: しゅりりん

Python実践講座 05:モジュール・パッケージ・依存管理

到達点は、複数ファイルへ分けても実行手順を再現できることです。前提は第03回です。 importはファイルの貼り付けではない 一つのPythonファイルをモジュールとして扱えます。import時にはモジュールのトップレベルの処理が実行されます。読み込みだけで入力待ちやファイル更新が始まると、テストや再利用が困難になります。実行の入口はmain関数へ集めましょ

1 0 0 0
投稿者: しゅりりん

Python実践講座 04:リスト・辞書・集合と計算量

到達点は、データの関係に合う入れ物を選ぶことです。前提は第03回です。 順番、対応、重複を分ける listは順番を持つ列、dictはキーから値への対応、setは重複のない集合です。tupleは変更不能な列で、複数の値をまとめて返す用途にも使います。選択の基準は短く書けるかではなく、何を保存し何を検索したいかです。 コードブロック。 main.pyで実行すると

1 0 0 0
投稿者: しゅりりん

Python実践講座 03:条件・反復・関数の契約

到達点は、入力、出力、許される範囲を決めて関数を書くことです。前提は第02回です。 関数に一つの判断を任せる 送料を求める関数なら、購入額を受け取り、送料を返すと決めます。表示や入力まで同じ関数に詰め込まなければ、別の画面やテストから再利用できます。defの後のインデントが関数の範囲です。 コードブロック。 main.pyとして実行すると、送料は500、50

0 0 0 0