我必须为课程编写这个程序,这是我到目前为止所做的。我运行代码就好了,但在输入分数后会弹出错误信息。
def main():
score_1_ = input('Enter score 1:')
name_1_ = input('Enter name 1:')
score_2_ = input('Enter score 2:')
name_2_ = input('Enter name 2:')
score_3_ = input('Enter score 3:')
name_3_ = input('Enter name 3:')
score_4_ = input('Enter score 4:')
name_4_ = input('Enter name 4:')
score_5_ = input('Enter score 5:')
name_5_ = input('Enter name 5:')
print('Name\t\tnumeric grade\tletter grade')
print('-------------------------------------------')
print(name_1_ + '\t\t', score_1_ , + '\t\t',determine_grade(score_1_))
print(name_2_ + '\t\t', score_2_ , + '\t\t',determine_grade(score_2_))
print(name_3_ + '\t\t', score_3_ , + '\t\t',determine_grade(score_3_))
print(name_4_ + '\t\t', score_4_ , + '\t\t',determine_grade(score_4_))
print(name_5_ + '\t\t', score_5_ , + '\t\t',determine_grade(score_5_))
print('------------------------------------------ ')
print('Average score: ' )
test_average = (score_1_ + score_2_ + score_3_ + score_4_ + score_5_) / 5.0
def calculate_average():
average = (s1 + s2 + s3 + s4 + s5 / 5.0 )
def determine_grade():
if score_1_ > 90:
return 'A'
elif score_2_ > 80:
return 'B'
elif score_3_ > 70:
return 'C'
elif score_4_ > 60:
return 'D'
else:
score_5_ > 50
return 'F'
main()
我遇到的问题是这个
追踪(最近一次通话): 文件“C:/Users/Brandon/Desktop/m5.py”,第69行,in 主要() 文件“C:/Users/Brandon/Desktop/m5.py”,第41行,主要 打印(name_1_ +'\ t \ t',score_1_,+'\ t \ t',确定__(score_1_)) TypeError:一元+的错误操作数类型:'str'
答案 0 :(得分:0)
由于这是你的作业,我不会发布完整的工作程序,但我会帮你解决一些问题。
我建议您从score
和name
变量名中删除尾随下划线,因为它们只会使代码看起来混乱。因此,您的输入代码应如下所示:
name_1 = input('Enter name 1:')
score_1 = float(input('Enter score 1:'))
如果分数是整数,则将float
更改为int
。我已将name
放在score
之前,因为我觉得这样做更有意义。
主打印部分中的行应如下所示:
print(name_1, '\t\t', score_1, '\t\t', determine_grade(score_1))
您有正确计算平均值的代码,但您从不打印它。你需要:
test_average = (score_1 + score_2 + score_3 + score_4 + score_5) / 5.0
print('Average score:', test_average)
摆脱calculate_average()
函数,因为你实际上没有调用它。它无论如何都不会起作用,因为你还没有在任何地方定义s1
,s2
等,并且)
位于错误的位置。
这里有一些确定成绩的代码。我已将>
更改为>=
,因为通常您会获得“{1}}”。如果你的分数是90%或更高,那么' B'如果你的分数至少达到80%且低于90%等等。
def determine_grade(score):
if score >= 90:
return 'A'
elif score >= 80:
return 'B'
elif score >= 70:
return 'C'
elif score >= 60:
return 'D'
else:
return 'F'
现在,您拥有了整理工作程序所需的一切。
请注意,如果使用循环和列表,则可以使代码 lot 更紧凑。