0

randomizer()ファイルから行をランダム化してからstd出力に書き込むPython関数を作成しました。それ自体は問題なく動作します。ここで、このプロセスをユーザー定義の回数だけ繰り返すことができるようにしたいので、次のように記述します。

def iterator():
    print("Number of iterations: ")
    total_iterations = raw_input()
    current_iteration = 1
    while current_iteration <= total_iterations:
        randomizer()
        current_iteration = current_iteration + 1

これを行うと、randomizer()手動で終了するまで繰り返し続けます。ただし、whileループが

while current_iteration <= total_iterations:
    random.shuffle(listname)
    current_iteration = current_iteration + 1

その後iterator()、指定された回数の実行後に停止します。randomizer()のwhileループ内のコード全体を記述した場合にも同じ問題が発生しますiterator()。これは、whileループ内から関数を呼び出すことに問題があることを示していますが、何がわからないのです。

4

1 に答える 1

1

問題はraw_input()、文字列を返すため、比較while current_iteration <= total_iterationsでは常にtrueが返されることです。

intにキャストして修正

total_iterations = int(raw_input())
于 2012-11-30T13:00:05.733 に答える