Python 3中的循环和条件语句问题

flamingjune5dwj

我是一个非常开始的程序员,我正在尝试为大学的教授创建一个年级书计划,以便他可以输入他的期中和期末考试成绩,并为每门课程的每个学生获得平均和字母成绩。该程序应该获得课程编号,课程级别,考试数量和学生信息(ID和考试分数)的输入。

最初,我想创建一个以ID为键,平均值为值的字典,但是那似乎不起作用,所以我开始尝试创建带条件的while循环。

基本上,代码是一团糟,我不确定自己做错了什么。我已经看过教程并在线阅读了很多东西,但是我为此感到困惑。一方面,我在第22行的elif语句中不断收到无效语法错误。任何人都可以给予的任何帮助,我们将不胜感激!对于我在这里遗漏的任何内容,我们会提前道歉-我是新来的。

谢谢!

print("Hello! Welcome to your Grading Program!\n")
courseCode = input("Please enter the course code : ")
courseLevel = input("Please enter the course level : ")
numberExams = float(input("Please enter the number of exams : "))
enterStudents = input("Would you like to input a student, Yes or No? : ")

student = 0

while enterStudents == "Yes" or "yes" or "y" or "Y" :
    if courseLevel == "undergrad" or "Undergrad" or "undergraduate" or "u" or "U":
        for student in range(int(numberExams)):
            ID = input("Please enter student ID: ")
            midterm = int(float(input("Please enter midterm score: ")))
            finalExam = int(float(input("Please enter final exam score: ")))
            undAverage = (midterm * .60) + (finalExam * .40)
    elif courseLevel == "grad" or "Grad" or "Graduate" or "g" or "G":
        for student in range(int(numberExams)):
            ID = input("Please enter student ID: ")
            midterm = int(float(input("Please enter midterm score: ")))
            finalExam = int(float(input("Please enter final exam score: ")))
            undAverage = (midterm * .30) + (finalExam * .70)               
elif enterStudents == "No" or "no" or "n" or "N" :
    print("\nSee you next time!")
else:
    enterStudents == "" :
        input("Invalid Entry! Would you like to input a student, Yes or No?:")

def Grade():
    for letter in Grade:
        total = 100
    for letter in Grade(A,B,C,D,E,F):
        if undGrade == "A":
                    undAverage >= range(85,101)
        elif undGrade == "B":
                    undAverage >= range(70,85)
        elif undGrade == "C":
                    undAverage >= range(55,70)
        elif undGrade == "D":
                    undAverage >= range(40,55)
        elif undGrade == "F":
                    undAverage >= range(0,40)
    print(Grade)
录像机

您的or陈述应“完整”。

elif courseLevel == "grad" or "Grad" or "Graduate" or "g" or "G":

需要成为:

elif courseLevel == "grad" or courseLevel == "Grad" or courseLevel == "Graduate" or courseLevel == "g" or courseLevel == "G":

比较容易做到这一点:

elif courseLevel.lower() in ['grad', 'graduate', 'g']:

.lower(): 迎合忽略区分大小写的单词

in []: 在列表/数组中查找项目

此外(归功于@Ashwini),while-elif不存在任何组合。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章