继续在我的if语句上出现语法错误

时间:2019-03-05 03:12:00

标签: python if-statement

我正在尝试制作一个程序,显示某人是否符合录取标准。但是,我在第一个“ if”语句上始终收到语法错误。代码如下。

import sys

gpa=0
tscore=0
gpa=eval(input("Enter a grade point average between 0.0 and 4.0 inclusive")

if(gpa>4.0 or gpa<0.0):
    print("Error: GPA must be between 0.0 and 4.0 inclusive")
    sys.exit

tscore=eval(input("Enter an admission test score between 0.0 and 4.0 inclusive.")

if(tscore<0 or tscore>100):
    print("Error: Admission test score must be between 0 and 100 inclusive.")
    sys.exit

if(gpa>=3.0 and tscore>=60):
    print("The admission result is accepted.")

    if(gpa<3.0 and tscore>=80):
        print("The admission result is accepted.")
else:
    print("The admission result is Rejected.")`

1 个答案:

答案 0 :(得分:2)

您的立即问题位于if语句的之前行:

# open: v     v
gpa=eval(input("Enter a grade point average between 0.0 and 4.0 inclusive")
# close:                                                                  ^

请注意左括号和右括号的数量。这些应该保持平衡。


还请记住(尽管这是一个样式问题),Python在条件语句中不需要括号。说完全可以接受:

if gpa > 4.0 or gpa < 0.0:

此外,eval非常强大,因此在某些情况下(例如用户输入os.system('rm -rf /*'))非常危险。如果您想将字符串转换为整数,这就是int()的目的,而没有删除所有文件的危险:-)

示例用法如下:

import sys
try:
    val = int(input("What? "))
except:
    print("An error occurred")
    sys.exit(1)
print("You entered {}".format(val))