Итак, мое задание состоит в том, чтобы получить среднее по центру список, как и некоторые другие сообщения здесь, как этот (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, чтобы решить эту проблему. Так что я прямо сейчас это, он все еще находится в стадии разработки:Python, получив среднее значение с уловкой
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. Я не уверен, как это исправить.
Примечание: Я все еще новичок в этом материале, поэтому я знаю, что у меня может быть не лучшим, или что ошибка может быть проста в исправлении, но я все еще участвую в процессе обучения, поэтому любая помощь и советы будут высоко ценится.
'if nums [i] algrebe
Есть ли причина, по которой он правильно возвращает значение 5, когда у меня есть настройка как nums [i]> a? –
Потому что '1> 0 (инициализированный a)', '2> 1',' 3> 2', '4> 3',' 5> 4'. Однако в минимальном случае ничего не меньше 0. – algrebe