输出仍然没有迭代

时间:2015-09-28 18:33:37

标签: python python-2.7 python-3.x

我的程序仍然没有迭代甚至计数+ = 1在代码中实现,似乎没有读取count + =的代码。请告诉我如何发布我的问题。

NameInput = int(input("number of students to enter: ")) 
GradeInput = int(input("number of grades per student: "))

students = {}

class Student():
    def GetInfo(students):
        idnum = 0
        count = NameInput

        for c in range(count):
            idnum += 1
            name =(input("Enter Student " + str(idnum) + " Name: "))
            if name in students:
                print ("Student " + name + " has already been entered, please enter again.")
                idnum -= 1
                count += 1                 
            else:
                students[name] = []       
                for r in range(GradeInput):
                    grade =(float(input("Enter Student " + str(idnum) + " Grade: ")))
                    students[name].append(grade)

    def printList(students):
        for key in students:
            print(key)
def main():
    Student.GetInfo(students)

main()

1 个答案:

答案 0 :(得分:1)

问题不在于count += 1本身。您可以在整个代码中添加一些打印语句,以便在执行的各个点查看count的值。

问题是您希望从其中更改循环的迭代次数。你写了你的循环:

for c in range(count):

达到此语句时,将读取count的值。该值传递给range(),返回的对象用于控制循环。在此之后更改count的值对您的程序没有影响,因为它永远不会再次使用。

更改代码的一种方法是:

c = 0
while c < count:
    ...
    c += 1

此方法允许您添加到count以使循环运行更多迭代。它比简单的for循环更多的代码,但更灵活。