Продолжаю получать синтаксическую ошибку в моем операторе if - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь создать программу, которая показывает, соответствует ли кто-либо критериям приема.Тем не менее, я продолжаю получать синтаксическую ошибку в моем первом операторе 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 голосов
/ 05 марта 2019

Ваша немедленная проблема заключается в строке до этого 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...