0

我编写了一个 Python 函数randomizer(),该函数将文件中的行随机化,然后将它们写入 std 输出。就其本身而言,它可以毫无问题地工作。现在我希望能够以用户定义的次数迭代这个过程,所以我写:

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()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 回答