組み込み開発のためのPython · レッスン 86 / 220
ジェネレーターで逐次処理する
yieldは値を一つずつ生成し、大きなファイルを一度にメモリへ載せずに処理できます。例外が起きた行番号を記録し、未処理データを黙って捨てない設計にします。
yieldは値を一つずつ生成し、大きなファイルを一度にメモリへ載せずに処理できます。例外が起きた行番号を記録し、未処理データを黙って捨てない設計にします。 このページでは、構文だけでなく、入力の検証と再現可能な確認方法も扱います。
考え方と使いどころ
yieldは値を一つずつ生成し、大きなファイルを一度にメモリへ載せずに処理できます。例外が起きた行番号を記録し、未処理データを黙って捨てない設計にします。
組み込み開発での注意点
一つの処理を小さな関数に分け、入力条件・戻り値・例外を明確にすると、機器なしの試験が容易になります。
コード例
手元のPython環境に貼り付ける前に、使用しているPythonの版と対象ライブラリの対応を確認してください。
def within_limits(value: int, low: int, high: int) -> bool:
if low > high:
raise ValueError("範囲の指定が逆です")
return low <= value <= high
print(within_limits(3290, 0, 5000))手を動かす課題
ログファイルを一行ずつ読み、壊れた行の番号を報告するジェネレーターを作ってください。