Python - 重复输入并跟踪它

时间:2015-05-05 18:05:51

标签: python

我有一个关于输入循环和跟踪它的问题。我需要制作一个能够跟踪班级所有成绩的程序......那就是班级规模每学期都有所不同,没有固定的编号分配给这个班级 学生的。当学生输入-1级时,该程序将停止输入。

while True:
    grade = int(input("Test: "))
    if grade < 0:
        break

我怎样才能让它跟踪每一个输入?

2 个答案:

答案 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