LINUX.ORG.RU

Проблема с Python

 , ,


1

2

Дан список чисел. Нужно найти минимальную сумму соседних 2-х чисел. Выдает ошибку: min = min(nums + nums[i + 1], min) TypeError: 'int' object is not callable

import random

random.seed(50)

N_MAX = 10 RANGE_MIN = 1 RANGE_MAX = 100 nums = random.sample(range(RANGE_MIN, RANGE_MAX), N_MAX)

print(nums)

min = RANGE_MAX * 2 for i in range(len(nums)): min = min(nums + nums[i + 1], min)

print(min)

Понять не могу где моя ошибка.

min = min(…)
Ты пытаешься присвоить результат функции переменной одноимённой этой функции? Зачем ты это делаешь? Почему не назвать переменную min_value например?

MrClon ★★★★★
()
Последнее исправление: MrClon (всего исправлений: 1)
Ответ на: комментарий от MrClon

Ты пытаешься присвоить результат функции переменной одноимённой этой функции?

Он не только пытается, он это делает. А потом пытается вызвать число как функцию.

i-rinat ★★★★★
()

import random

random.seed(50)

N_MAX = 10 
RANGE_MIN = 1
RANGE_MAX = 100
nums = random.sample(range(RANGE_MIN, RANGE_MAX), N_MAX)

sums = []
for i in range(len(nums)-1): 
	sums.append(nums[i]+nums[i+1])

print(min(sums))


Иди преподу своему показывай

Siado ★★★★★
()
Ответ на: комментарий от Siado

А не луче вот так?

...

minValue = nums[0] + nums[1]
for i in range(len(nums) - 1):
    minValue = min(minValue, nums[i] + nums[i+1])

print minValue

Дополнительный массив ненужен.

PHPFan
()
Ответ на: комментарий от PHPFan

Ой, извиняюсь:

...
for i in range(1, N_MAX - 1):
    minValue = min(minValue, nums[i] + nums[i+1])
...

так как nums[0] + nums[1] уже есть.

PHPFan
()
Ответ на: комментарий от PHPFan

Можно вообще в одну строку без цикла и переменных

min(map(lambda x: sum(x), zip(nums, nums[1:])))

Только это на оценку ТСа повлияет, т.к. объяснить преподу не сможет что откуда =)

Siado ★★★★★
()
Последнее исправление: Siado (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.