我有一个关于输入循环和跟踪它的问题。我需要制作一个能够跟踪班级所有成绩的程序......那就是班级规模每学期都有所不同,没有固定的编号分配给这个班级 学生的。当学生输入-1级时,该程序将停止输入。
while True:
grade = int(input("Test: "))
if grade < 0:
break
我怎样才能让它跟踪每一个输入?
答案 0 :(得分:1)
你可以使用一个列表comp与iter并让用户输入-1来结束循环:
grades = [int(grade) for grade in iter(lambda:input("Enter grade or -1 to exit: "), "-1")]
iter
接受一个将在输入时打破循环的标记,因此只要用户输入-1,循环就会结束。
在进行输入和转换时,您应该使用try / except来验证用户输入的内容:
grades = []
while True:
try:
grade = int(input(""Enter grade or -1 to exit: ""))
except ValueError:
# user entered bad input
# so print message and ask again
print("Not a valid grade")
continue
if grade == -1:
break
grades.append(grade) # input was valid and not -1 so append it
答案 1 :(得分:0)
grades = [] # initialize an empty list
while True:
grade = int(input("Test: "))
if grade < 0:
break
else:
grades.append(grade) # add valid values to the list