python 程序的无限循环

Infinite loop for python program

我对这段代码有疑问,这个程序应该一直允许你输入学生,直到通过次数达到 8 或学生总数达到 10。但是目前它只是一直要求输入,因此有一个无限循环。我该如何解决这个问题?

total_students=0
student_passes=0
student_failures=0

while (total_students <= 10) or (student_passes != 8):
        result=int(input("Input the exam result: "))
        if result>=50:
            student_passes = student_passes + 1
        else:
            student_failures = student_failures + 1
        total_students = total_students + 1

 print (student_passes)
 print (student_failures)

 if student_passes >= 8:
     print ("Well done")

把or改成and。如果两者都正确,您继续:

total_students=0
student_passes=0
student_failures=0

while (total_students != 10) and (student_passes != 8): # != or <
        result=int(input("Input the exam result: "))
        if result>=50:
            student_passes += 1
        else:
            student_failures += 1
        total_students +=1

print (student_passes)
print (student_failures)

您可能需要重新访问您的代码。我不是 python 专家,但我认为您应该修改 while 循环的条件。

例如 while (total_students <= 10) 或 (student_passes <= 8): 这将解决您的问题。

total_students=0
student_passes=0
student_failures=0

while (total_students <= 10) or (student_passes <= 8):
        result=int(input("Input the exam result: "))
        if result>=50:
            student_passes = student_passes + 1
        else:
            student_failures = student_failures + 1
        total_students = total_students + 1

 print (student_passes)
 print (student_failures)

 if student_passes >= 8:
     print ("Well done")

您应该使用 而不是 来满足您的要求。

total_students=0
student_passes=0
student_failures=0

while (total_students <= 10 and student_passes < 8):
        result=int(input("Input the exam result: "))
        if result>=50:
            student_passes = student_passes + 1
        else:
            student_failures = student_failures + 1
        total_students = total_students + 1

print (student_passes)
print (student_failures)

if student_passes >= 8:
    print ("Well done")