我的程序仍然没有迭代甚至计数+ = 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()
答案 0 :(得分:1)
问题不在于count += 1
本身。您可以在整个代码中添加一些打印语句,以便在执行的各个点查看count
的值。
问题是您希望从其中更改循环的迭代次数。你写了你的循环:
for c in range(count):
达到此语句时,将读取count
的值。该值传递给range()
,返回的对象用于控制循环。在此之后更改count
的值对您的程序没有影响,因为它永远不会再次使用。
更改代码的一种方法是:
c = 0
while c < count:
...
c += 1
此方法允许您添加到count
以使循环运行更多迭代。它比简单的for
循环更多的代码,但更灵活。