• Предмет: Информатика
  • Автор: regginanikolenko
  • Вопрос задан 2 года назад

ПОМОГИТЕ С КОДОМ НА PYTHON!
Задача1. Количество элементов между минимумом и максимумом
Написать программу, которая для 10 целочисленных элементов определяет, сколько положительных элементов располагается между максимальным и минимальным элементами.
Задача2. Сумма элементов правее последнего отрицательного
Написать программу, которая для n вещественных элементов определяет сумму элементов, расположенных правее последнего отрицательного элемента.
Задача3. Сжатие массива
Написать программу, которая «сжимает» целочисленный массив из 10 элементов, удаляя из него элементы, меньшие заданной величины.


vershitelsudeb: можно поподробнее условие первой задачи?
regginanikolenko: это все, что было дано (

Ответы

Ответ дал: pinguinbird
1

1:

from random import randint

cnt = 0

values = [randint(-50, 50) for _ in range(10)]

min_index = values.index(min(values))

max_index = values.index(max(values))

if max_index < min_index: min_index, max_index = max_index, min_index

for i in range(min_index+1,max_index):

   if values[i] > 0: cnt += 1

print(values)

print('Количество положительных значений между минимальным и максимальным значениями равно:', cnt)

2:

from random import randint

summ = 0

n = int(input('Введите количество значений в массиве: '))

values = [randint(-500, 500)/100 for _ in range(n)]

for value in values[::-1]:

   if value < 0: break

   summ += value

print(values)

print('Сумма значений правее последнего отрицательного значения равна:', summ)

3.

from random import randint

values = [randint(-50, 50) for _ in range(10)]

print(values)

n = int(input('Введите значение, элементы меньше которого будут удалены: '))

for i in range(len(values)-1, 0, -1):

   if values[i] < n: values.pop(i)

print(values)


pinguinbird: print(sum(mas[-mas[::-1].index(list(filter(lambda x: x < 0, mas))[-1]):])) - дада, а этот код очень легко читать )) особенно школьникам :)
pinguinbird: но спасибо за критику, в любом случае это полезно, понять ошибки или убедиться, что ты прав :)
vershitelsudeb: не отрицаю, что мой код в данном случае хоть и читается нормально, будет абсолютно не понятен новичку)
vershitelsudeb: но дело в том, что из-за отсутствия отступов не всегда понятно например if находится в цикле или после него
vershitelsudeb: А это тоже важно
vershitelsudeb: и если просто скопировать код без отступов, он не заработает, а правильно расставить отступы сможет не каждый
pinguinbird: не очень понимаю, про какое конкретно место вы говорите про отступы. Они везде проставлены, где нужно.
vershitelsudeb: я понял, дело в том что с компьютера они не отображаются
vershitelsudeb: а на телефоне все нормально
vershitelsudeb: тогда извините, это проблема сайта, у вас все верно
Ответ дал: vershitelsudeb
1

1)

mas = [1, 2, -2, 3, -5, 12, 5]  # Можете указать свои числа

start = mas.index(max(mas))

stop = max.index(min(mas))

if start > stop:

   start, stop = stop, start

print(len(list(filter(lambda x: x > 0, mas[start+1:stop]))))

2)

mas = [1, 2, -2, 3, -5, 12, 5]  # Можете указать свои числа

print(sum(mas[-mas[::-1].index(list(filter(lambda x: x < 0, mas))[-1]):]))

3)

mas = [1, 2, -2, 3, -5, 12, 5]  # Можете указать свои числа

minimum = 1  # Все значения меньше указанного будут удалены

mas = list(filter(lamda x: x >= minimum, mas))

print(*mas)  # Выводи получившийся массив


pinguinbird: а, сорри, по первому вопросу я скосячил действительно... Надо было внимательнее читать условие, поправлю.
vershitelsudeb: видимо вы не поняли условие задачи
vershitelsudeb: тут максимальное число 30
vershitelsudeb: а минимальное -5
vershitelsudeb: между ними 0 чисел, что и возвращает программа
vershitelsudeb: откуда вы взяли 4 - я не понимаю
vershitelsudeb: я подразумевал под 'между ними' порядок в массиве, а не на числовой прямой
vershitelsudeb: ну а ник мне просто понравился такой)
pinguinbird: ну да, не самонадеянному человеку вряд ли бы такой ник понравился :)
Да по первой задаче я признал свою ошибку выше по тексту и поправил уже код, спасибо.
vershitelsudeb: я самонадеянный в том, в чем я хорошо разбираюсь) Например в python школьного уровня
Вас заинтересует