Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでwhileループをforループに変換する方法【itertools.count()の使い方】

itertools.count()を使ってforループに書き換える

whileループをforループに書き換えたい場合、標準ライブラリitertoolsモジュールのcount()関数が便利です。count()関数は、等間隔に並んだ値を順番に生成するイテレータを返します。

この関数は2つの引数を受け取ります。

  • start:開始値(デフォルトは0)
  • step:増分(デフォルトは1)

引数を省略してデフォルト設定のまま使用すると、無限に続くイテレータが生成されます。そのため、ユーザー入力など特定の条件でループを終了したい場合は、break文で明示的にループを抜ける必要があります。

コード例

import itertools
percentNumbers = [ ]
finish = "n"
num = "0"
for x in itertools.count() :
    num = input("enter the mark : ")
    num = float(num)
    percentNumbers.append(num)
    finish = input("stop? (y/n) ")
    if finish=='y':break
print(percentNumbers)

このスクリプトでは、count()が返す無限イテレータをforループで回しながら、ユーザーから数値を入力してリストに追加していきます。「stop?」の質問に対して「y」が入力されると、break文によってループが終了し、収集した数値のリストが出力されます。

実行結果の例

enter the mark : 11
stop? (y/n)
enter the mark : 22
stop? (y/n)
enter the mark : 33
stop? (y/n) y
[11.0, 22.0, 33.0]

このように、itertools.count()を利用すれば、カウンタ変数を手動で管理するwhileループと同じ処理を、より簡潔なforループの形で実現できます。

  1. 【Python・Pandas】DateTimeIndexをPeriodIndexに変換する方法(to_periodの使い方)

    DateTimeIndexをPeriodIndexに変換するとは? Pandasでは、datetimeindex.to_period()メソッドを使うことで、DateTimeIndex(日時型のインデックス)をPeriodIndex(期間型のインデックス)に簡単に変換できます。変換後の頻度(周期)は、freqパラメータで自由に指定可能です。時系列データを月単位や年単位などで集計・分析したい場合に非常に便利な機能です。 1. 必要なライブラリをインポートする まずは、Pandasをインポートします。 import pandas as pd 2. DatetimeIndexを作成する 次に、開

  2. PythonのforループでTkinterボタンを作成する方法

    TkinterのButtonウィジェットは、アプリケーションの実行中にイベントを処理し、さまざまなアクションを実行するうえで非常に便利な機能です。Tkinterのボタンは、Button(parent, text, option...) コンストラクタを使用して作成できます。このコンストラクタを活用することで、ループ処理の中で複数のボタンを効率的に生成することも可能です。 サンプルコード 以下の例では、Pythonの for ループを使用して、指定した範囲内に複数のボタンを作成します。 #必要なライブラリをインポート from tkinter import * from tkinter imp