我无法让累加器循环正常工作,抛出了错误Python

2024-05-29 04:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个程序,让用户输入课程名称、编号、成绩和学分,以计算GPA和质量分数。我相信所有的计算都是正确的,但我不确定,因为我的循环被破坏了。我正在尝试创建一个循环,其中迭代(ittNum)被累积,并与用户输入的类数进行比较。基本上,我希望有一个循环,一旦用户输入了他们所选的类的数量,我的数据将被返回用于总计算

这是我最新的错误消息

回溯(最近一次呼叫最后一次): 文件“D:/Python/FinalProgram1.py”,第40行,在 ClassGPA() ClassGPA中第13行的文件“D:/Python/FinalProgram1.py” ittNum=int(“”) ValueError:基数为10的int()的文本无效:“”

#Ask user's input for total classes taken
classesTaken = int(input('How many classes did you take? '))

#set function to take inputs and do calculations, should return values
#to variables defined
def ClassGPA():
    courseNum = input('What was the course number? ')
    courseName = input('What was the name of the course? ')
    courseGrade = input('What was your letter grade? ')
    courseHour = int(input('How many credit hours was the course worth? '))
    ittNum = int('')
    if courseGrade == ('A'): numGrade = 4.00
    elif courseGrade == ('A-'): numGrade = 3.67
    elif courseGrade == ('B+'): numGrade = 3.33
    elif courseGrade == ('B'): numGrade = 3.00
    elif courseGrade == ('B-'): numGrade = 2.67
    elif courseGrade == ('C+'): numGrade = 2.33
    elif courseGrade == ('C'): numGrade = 2.00
    elif courseGrade == ('C-'): numGrade = 1.67
    elif courseGrade == ('D+'): numGrade = 1.33
    elif courseGrade == ('D'): numGrade = 1.00
    elif courseGrade == ('F'): numGrade = 0.00
    qualityPoints = (numGrade * courseHour)
    print('Course:', courseNum, ', Course Name:', courseName, ', Quality Points:',\
          qualityPoints, ', GPA:', numGrade)
    ittNum = ittNum + 1
    totalHour += courseHour
    totalQual += qualityPoints
    totalGPA += numGrade
#Set loop condition
    if ittNum <= classesTaken:
        ClassGPA()
    else:
        return totalHour
        return totalQual
        return totalGPA

ClassGPA()

GPA = (totalGPA / totalQual)
print('Your total Quality Points for the semester were ', sum(totalQual))
print('Your total GPA for the semester was ', GPA```

Tags: the用户forinputreturninttotalgpa
1条回答
网友
1楼 · 发布于 2024-05-29 04:23:45

您的错误如下: ittNum = int('')

您试图将空字符串强制转换为int,无法执行

编辑:

这段代码还有很多问题

  1. 这不是一个循环。相反,这是对递归的不当使用
  2. 变量classesTaken从未声明或初始化
  3. 此函数返回的值(如果有,请参阅问题2)从未分配给任何对象
  4. 一个函数只能返回一次。在第一个项目之后返回的两个项目实际上永远不会被返回
  5. 似乎您正在尝试使用返回变量totalGPAtotalQual,这永远不会以这种方式工作,请参见问题4

相关问题 更多 >

    热门问题