while循环输出没有正确的falue

时间:2017-02-02 23:39:22

标签: python python-2.7

我正在尝试创建一个要求学生姓名和成绩的python程序,但我需要验证这些分数,假设考试时间超过20,那么该分数不应小于零或大于20所以我使用while循环来做到这一点,但是当我运行它时,每个标记都会出现错误,这是我的代码

Student_Name = [str]
Test1 = [int]

for i in range(3):
Student_Name = raw_input("please input the name of Student {}: ".format(i+1))
Test1 = raw_input("please input the mark for Test1 of {}: ".format(Student_Name))
while Test1 > 20 or Test1 <0:
    print "invalid"
    Test1 = raw_input("please Reinput mark of {}: ".format(Student_Name))

1 个答案:

答案 0 :(得分:1)

提供的代码存在许多问题。首先,for循环的缩进是关闭的。其次,您对名为Student_Name1Test1的列表以及名为Student_Name1Test1的输入变量使用了相同的名称。第三,Python中的raw_input返回str,您需要将其强制转换为int

student_names = [str]
tests = [int]

for i in range(3):
    student_name = raw_input("please input the name of Student {}: ".format(i+1))
    test_score = int(raw_input("please input the mark for Test1 of {}: ".format(student_name)))
        while test_score > 20 or test_score < 0:
        print "invalid"
        test_score = int(raw_input("please Reinput mark of {}: ".format(student_name)))

此代码应该提供您正在寻找的内容,或者至少是一个很好的参考。