Python For循环将无法运行

时间:2018-03-18 18:23:59

标签: python for-loop while-loop

我正在尝试在for循环内运行while循环,但由于某种原因它根本没有运行。

以下是代码:

with open("Nominees_18.csv") as nominees:
    reader = csv.reader(nominees)
    next(reader)
    for c, row in enumerate(reader):
        print(row[0], row[1], c)
    while True:
        name = input("chose a number")
        print(4)
        for c, row in enumerate(reader):
            print(4)
            if str(c) in name:
                print(len([i for i in row if row[i] == "y"]))
        if input("chose another?") == ("no" or "No"):
            break

脚本会询问您是否有号码,然后询问您是否要选择其他号码。我把print(4)用来测试for循环并且它没有出现。

上面还有其他代码,但我没有把它包括在内,因为我觉得它不相关,但是如果你想要它,请告诉我。

我不知道为什么会发生这种情况。

感谢。

2 个答案:

答案 0 :(得分:0)

input()等待用户输入内容,因此在用户按Enter后执行print(4)。 while循环内部的for循环可能找不到任何内容,因为您之前已经迭代了文件内容(并且读取器已经在文件的末尾)。您可能希望将文件内容保存在本地变量中(以解析的形式),以便在文件不太大时可以更轻松地搜索它。

答案 1 :(得分:0)

在第一个循环中枚举后,生成器已经耗尽。在第一个循环之后尝试在其上调用next()方法将导致StopIteration错误,但是尝试在下一个for循环中迭代它不会做任何事情,因为它已经是空的。