我无法让带累加器的循环正常工作,抛出错误 Python
I can't get my loop with accumulator to work properly, throwing error Python
我正在尝试制作一个程序,让用户输入课程名称、编号、等级和学分来计算 GPA 和质量分数。我相信所有的计算都是正确的,但我不确定,因为我的循环坏了。我正在尝试创建一个循环,其中迭代 (ittNum) 被累积并与用户输入的 类 进行了比较。基本上,我希望在用户输入 类 的数量后返回我的数据以用于总计算。
这是我最新的错误信息。
回溯(最后一次调用):
文件 "D:/Python/FinalProgram1.py",第 40 行,位于
类GPA()
ClassGPA 中的文件 "D:/Python/FinalProgram1.py",第 13 行
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```
你的错误在这里:
ittNum = int('')
您正在尝试将空字符串转换为 int
,无法完成。
编辑:
这段代码还有很多问题。
- 这不是循环。相反,这是对递归的不当使用。
- 您的变量
classesTaken
从未声明或初始化。
- 此函数 return 的值(如果有,请参阅问题 #2)从未分配给任何东西。
- 一个函数只能 return 一次。第一项之后的两项 returned 实际上永远不会被 returned。
- 您似乎正在尝试使用 return 变量
totalGPA
和 totalQual
,这种方式永远行不通,请参阅问题 #4。
我正在尝试制作一个程序,让用户输入课程名称、编号、等级和学分来计算 GPA 和质量分数。我相信所有的计算都是正确的,但我不确定,因为我的循环坏了。我正在尝试创建一个循环,其中迭代 (ittNum) 被累积并与用户输入的 类 进行了比较。基本上,我希望在用户输入 类 的数量后返回我的数据以用于总计算。
这是我最新的错误信息。
回溯(最后一次调用): 文件 "D:/Python/FinalProgram1.py",第 40 行,位于 类GPA() ClassGPA 中的文件 "D:/Python/FinalProgram1.py",第 13 行 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```
你的错误在这里:
ittNum = int('')
您正在尝试将空字符串转换为 int
,无法完成。
编辑:
这段代码还有很多问题。
- 这不是循环。相反,这是对递归的不当使用。
- 您的变量
classesTaken
从未声明或初始化。 - 此函数 return 的值(如果有,请参阅问题 #2)从未分配给任何东西。
- 一个函数只能 return 一次。第一项之后的两项 returned 实际上永远不会被 returned。
- 您似乎正在尝试使用 return 变量
totalGPA
和totalQual
,这种方式永远行不通,请参阅问题 #4。