Python,使用catch

时间:2016-11-14 05:09:48

标签: list python-3.x average

所以,我的任务是获得列表的居中平均值,就像这里的一些其他帖子一样(https://codereview.stackexchange.com/questions/108404/how-to-get-a-centered-mean-excluding-max-and-min-value-of-a-list-in-python)和其他几个。但是,我的教授告诉我们,我们不允许使用min,max或sort来解决这个问题。所以我现在所拥有的是,它仍在进行中:

def centered_average(nums):
high=0
low=0
a=0
b=0
for i in range(len(nums)):
    if nums[i]>a:
        a=nums[i]
        high=a
for i in range(len(nums)):
    if nums[i]<b:
        b=nums[i]
        low=b     
total=sum(nums)
average=(total-high-low)/(len(nums)-2)
print(average)

我的问题是,我无法将其识别为列表中的最低编号。例如,如果我输入[1,2,3,4,5]作为列表,我的函数应该返回5作为高,1作为低,3作为居中平均,因为2 + 3 + 4是9 / 3 = 3。然而,我所拥有的东西将低点返回0.我认为这是因为(镜头(nums)因为它会认为第一个数字是0.我不知道应该如何解决这个问题。< / p>

注意:我仍然是这个东西的初学者,所以我知道我所拥有的可能不是最好的,或者错误可以很容易修复,但我仍然在学习的过程中所以任何帮助和建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

问题是您以app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.post('/upload', function (req, res) { console.log('hari :'+req.body.purpose); timeNow = Date.now(); var jobID = timeNow + '_' + Math.floor((Math.random() * 10000000000000) + 1); var rethinkObj = config.rethinkdb; var data = { "id": jobID, "finished_at": timeNow, "last_update": timeNow, "log": "add job", "process_instructions": "", "start_at": timeNow, "status": "in-progress" } rethink.insertDataIntoTable(rethinkObj, data).then(function(insertedData){ console.log(insertedData); console.log('new row inserted into RethinkDB', data.id); uploadFile(req, res, jobID); }) }); 开始运行最小值(并且运行最大值)。

将运行最小值开始为0(因为一切都保证小于此值)。以float("inf")开始运行最大值(因为一切都保证大于此值)。

或者,将两者作为列表的第一个元素开始(这是一个真正的最小值/最大值,或者是另一个低于/高于它的元素)。