Предмет: Информатика, автор: sophiyasour

Задача на Python
Вводится список в виде вещественных чисел в одну строку через пробел.Сначала нужно сформировать список из введённой строки.Затем,все отрицательные значения в этом списке заменить на -1.0.Результат вывести на экран в виде строки чисел через пробел.Программу следует реализовать с использованием функции enumerate или for in range

Ответы

Автор ответа: Леганда555
1

a = list(map(float, input().split()))

for i in range(len(a)):

   if a[i] < 0:

       a[i] = -1.0

print(*a)


sophiyasour: Спасибо большое
Заработал в PuCharm
Если есть возможность
Можно в личку подробное решение?
Леганда555: Знать бы ещё как в лс писать, не получается. Так что тут опишу
Леганда555: Первая строчка - чтение. Функция map() принимает два параметра. Первый - функция, которую надо применить. Второй - объект, к которому нужно применить данную функцию. В данном случае функция float приводит строку ввода, разбитую по пробелам с помощью метода split к вещественному типу данных. Затем функция map попадет в list(), где преобразуется в список. Ну а дальше простым циклом заменяем отрицательные элементы на -1.
sophiyasour: А зачем нужно указывать перебор по длине списка
(len(a))
У меня до этого и не получалось ,потому что я просто писала for I in range a
Разве эта функция не будет сама перебирать всё внутри списка,к которому я отозвалась ?
Леганда555: функция range генерирует спец. объект в котором хранятся лишь числа. Если уж и перебирать сразу список a, то следующим циклом:
for i in a:
Леганда555: Но тогда нельзя будет менять значения, присвоив что-нибудь переменной i внутри цикла
sophiyasour: То есть чтобы перебирать объекты внутри списка нужно обязательно указывать len?
Леганда555: Это чтобы перебирать индексы, len() возвращает длину объекта (количество элементов в нём). А с помощью range(len(a)) перебираем числа в диапазоне [0; len(a))
sophiyasour: Все,спасибо огромное за помощь!Поняла!
Похожие вопросы
Предмет: Английский язык, автор: Merysysusu