CONTENTS コンテンツ

ChatGPTを使ってPythonを学ぼう!(22)

ChatGPTを使ってPythonを学ぼう!

2024.02.20

 Python学習編22回目です。

 東京大学のPython学習ページで学んでいます。今回は4-2. イテラブルとイテレータ。聞いたことのない文字列が出てきた。

 今回もGPT先生に出題してもらおう。

入力:

pythonの「イテラブル」「イテレータ」の概念を理解するための練習問題を作ってください。

出力:

Pythonの「イテラブル(iterable)」と「イテレータ(iterator)」の概念を理解するための練習問題をいくつか提案します。これらの問題は、これらの概念の理解を深め、Pythonでのイテレーション処理のスキルを向上させることを目的としています。

問題1: イテラブルの認識

以下のPythonオブジェクトの中で、イテラブルであるものを全て挙げてください。

  1. "hello world"(文字列)
  2. 17(整数)
  3. [1, 2, 3](リスト)
  4. { "apple": "red", "banana": "yellow" }(辞書)
  5. {1, 2, 3}(セット)
  6. True(ブール値)
  7. (1, 2, 3)(タプル)

問題2: イテレータの作成と利用

リスト[1, 2, 3, 4, 5]からイテレータを作成し、next()関数を使用してすべての要素を取り出すPythonスクリプトを書いてください。

問題3: カスタムイテラブルクラスの作成

0から始まり、指定された数まで2ずつ増加する数を返すカスタムイテラブルクラスEvenNumbersを作成してください。例えば、EvenNumbers(5)のイテレータを作成した場合、0, 2, 4の数を順に返すようにしてください。

問題4: イテラブルとイテレータの違いの説明

Pythonにおける「イテラブル」と「イテレータ」の違いを簡潔に説明してください。

問題5: ジェネレータを使用したイテレーション

シンプルなジェネレータ関数を書いてください。この関数は、呼び出すたびに次のフィボナッチ数を返すようにしてください。

解答例

これらの問題の解答例を作成するには、Pythonのiter()関数、next()関数、クラスの__iter____next__メソッドの実装、ジェネレータ関数の定義などに関する知識が必要です。

これらの練習問題を解くことで、イテラブルとイテレータの概念に加えて、Pythonでのイテレーション処理の様々な側面について深い理解を得ることができます。

カスタムイテラブルクラス、ジェネレータ関数は知らない概念だ。この辺のカリキュラム考慮してくれないのは仕方ないね。

次回に続く

この記事をシェアする