【问题标题】:Finding the average of three numbers that are in a CSV file查找 CSV 文件中三个数字的平均值
【发布时间】:2016-03-29 08:55:29
【问题描述】:

我已经创建了一段代码,但是我已经开始尝试找到每个人的平均分数,但不知道还能做什么。代码不起作用:

def average():#makes function 'average'
print ("\nThe Average Score")#outputs the title 'The Average Score'
for pupils in classScore:
    pupil["total"] = (int(pupil["Pupil's Score 1"])+int(pupil["Pupil's Score 2"])+int(pupil["Pupil's Score 3"]))
    pupil["average"] = (pupil["total"]//3)
    print (pupil["Pupil's Name"]+pupil["average"])
average()

CSV 文件的布局如下:

Pupil's Name     Pupil's Score 1    Pupil's Score 2       Pupil's Score 3
Joao                  10                 9                       8
Rebecca                7                 6                       5
Snuffles               0                 1                       2

出现的错误信息是:

Traceback (most recent call last):


File "E:/Controlled Assesment Computing/Controlled Assesment/Task 3/Try 18.py", line 56, in <module>
    average()
File "E:/Controlled Assesment Computing/Controlled Assesment/Task 3/Try 18.py", line 53, in average
    print (pupil["Pupil's Name"]+pupil["average"])
TypeError: Can't convert 'int' object to str implicitly

如果有人能提供帮助,将不胜感激。

【问题讨论】:

  • 您收到错误消息吗?如果是这样,我们需要确切地知道它在说什么。
  • 好的,我会用错误信息更新问题
  • 尽管我很想说是的,但我不能,因为我不知道该怎么做。

标签: python function csv math average


【解决方案1】:

消息看起来很清楚:

TypeError: Can't convert 'int' object to str implicitly

您必须进行操作才能将数字转换为字符串。试试这个:

print(pupil["Pupil's Name"]+str(pupil["average"]))

您将这种方法限制为三个学生,这对您自己造成了伤害。您可以轻松地使其适用于任意数量的学生。

我建议不要使用这种普通方法进行打印。一个方法应该做好一件事。

【讨论】:

  • 我很抱歉,但是我往往理解的很慢。如果你能用更简单的方式重复你自己,是否有可能?
  • 我已经按照你说的做了,但是它只打印出一个人的名字和他们的平均值,并且这样做了三遍,而不是打印出所有三个学生的名字和他们的平均值。
猜你喜欢
  • 1970-01-01
  • 2017-06-11
  • 1970-01-01
  • 2017-02-18
  • 2017-04-20
  • 1970-01-01
  • 2017-06-30
  • 1970-01-01
  • 2021-12-13
相关资源
最近更新 更多