Как найти количество отрицательных элементов массива питон

Есть такое задание:

Запросить ввод k чисел. Вводить можно отрицательные, положительные
числа, ноль. Числа могут повторяться. Найти количество отрицательных
чисел среди вводимых. Вывести ответ с пояснением.

В программе используется оператор цикла for, оператор проверки условия if
Вот код, до которого я дошел:

k = int(input('Введите любое число '))
a = 0
for k in range(k, 1):
 if k < 0:
   print(k)

Как это сделать правильно?

Jack_oS's user avatar

Jack_oS

12.5k7 золотых знаков18 серебряных знаков48 бронзовых знаков

задан 20 апр 2021 в 7:39

WaP1's user avatar

2

Вам для «найти количество отрицательных» нужен какой-то счетчик этих самых «отрицательных», negatives в данном случае (или а, как у вас), который при выполнении условия нужно увеличивать на 1, а после цикла — вывести его на печать:

k = int(input('Количество чисел: '))

negatives = 0
for _ in range(k):
    num = int(input(f'Введите {_+1}-е число: '))
    if num < 0:
        negatives += 1

print(f'Вы ввели {negatives} отрицательных чисел')

ответ дан 20 апр 2021 в 7:45

Jack_oS's user avatar

Jack_oSJack_oS

12.5k7 золотых знаков18 серебряных знаков48 бронзовых знаков

1

Функциональным стилем в одну строку чисто по приколу:

print('Отрицательных чисел:', sum(map(lambda x: int(input('Введите число: ')) < 0, range(int(input('Введите количество чисел: '))))))

ответ дан 20 апр 2021 в 8:29

CrazyElf's user avatar

CrazyElfCrazyElf

65.4k5 золотых знаков19 серебряных знаков50 бронзовых знаков

a = 0
for i in range(int(input('Введите любое число: '))):
    a += int(input()) < 0
print(a)

ответ дан 20 апр 2021 в 7:46

Kuchizu's user avatar

KuchizuKuchizu

1,1986 серебряных знаков13 бронзовых знаков

1

You can create a list full of True and False for each number then count how many True is in it:

a = (-1, 1, 2, 6, -9, -20, 0, 0, 12, -7, 9, 8, 3, -16)
# Create a list with True or False depending of the condition n<0
neg_list = [n<0 for n in a]
# Count how many True is in the list
print(neg_list.count(True))
# 5

Or, you can create a list with each number lower than 0, then count how long the list is:

a = (-1, 1, 2, 6, -9, -20, 0, 0, 12, -7, 9, 8, 3, -16)
print(len([n for n in a if n<0]))
# 5

151267fr

0 / 0 / 0

Регистрация: 03.12.2016

Сообщений: 14

1

Вывести и вычислить число отрицательных элементов массива

26.05.2017, 21:40. Показов 6790. Ответов 4

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

дан массив А вещественных чисел содержащий 25 элементов. Вывести и вычислить число отрицательных элементов и число членов принадлежащих отрезку [1,2]
а) написать и отладить программу с помощью классов
б) написать и отладить программу с помощью функций

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env python
# coding: utf8
from numpy import *
import math
k=0
s=0
b = linspace(-3,3,25)
for i in b:
 if (b[i])<0:
   k=k+1
 if (b[1])<=(b[i])<=(b[2]):
   s=s+1
print(b)   
print(str(k))
print(str(s))



0



rebirth

14 / 14 / 15

Регистрация: 19.01.2017

Сообщений: 48

27.05.2017, 01:16

2

Цитата
Сообщение от 151267fr
Посмотреть сообщение

число членов принадлежащих отрезку [1,2]

Я что-то не понял. Можешь привести пример?

Добавлено через 4 минуты

Цитата
Сообщение от 151267fr
Посмотреть сообщение

Вывести и вычислить число отрицательных элементов

Python
1
len([i for i in b if i<0])

Добавлено через 2 минуты

Цитата
Сообщение от 151267fr
Посмотреть сообщение

число членов принадлежащих отрезку [1,2]

я понял

Python
1
len([i for i in b if b[1]<=i<=b[2]])

Добавлено через 17 минут
А теперь твой код

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env python
# coding: utf8
from numpy import *#Не надо импортировать всё, если нужна только одна функция. Экономь память
import math#Зачем здесь math
k=0#В Python объявлять переменные заранее не требуется
s=0
b = linspace(-3,3,25)
for i in b:
 if (b[i])<0:#можно и без скобок
   k=k+1#есть сокращенный вариант k += 1
 if (b[1])<=(b[i])<=(b[2]):
   s=s+1
print(b)   
print(str(k))#str тоже лишняя
print(str(s))

Добавлено через 9 минут

Цитата
Сообщение от 151267fr
Посмотреть сообщение

написать и отладить программу с помощью классов

Python
1
2
3
4
5
6
7
8
9
10
11
12
class A:
    def __init__(self, array):
        self.array = array
    def count_negative(self):
        return len([i for i in self.array if i<0])
    def count_between(self):
        return len([i for i in self.array if self.array[1]<=i<=self.array[2]])
>>> a = A(b)
>>> a.count_negative()
12
>>> a.count_between()
2



0



Garry Galler

Эксперт Python

5407 / 3831 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

27.05.2017, 02:21

3

Python
1
2
3
4
5
6
7
8
b = linspace(-3,3,25)
negative = b[b<0]
onetwo = list(filter(lambda x: x >= 1.0 and x <= 2.0, b))
 
print(negative)
print(len(negative))
print(onetwo)
print(len(onetwo))



0



151267fr

0 / 0 / 0

Регистрация: 03.12.2016

Сообщений: 14

27.05.2017, 13:00

 [ТС]

4

не пойму как вывод сделать?

Python
1
2
3
4
5
6
7
8
9
10
11
12
class A:
    def __init__(self, array):
        self.array = array
    def count_negative(self):
        return len([i for i in self.array if i<0])
    def count_between(self):
        return len([i for i in self.array if self.array[1]<=i<=self.array[2]])
>>> a = A(b)
>>> a.count_negative()
12
>>> a.count_between()
2



0



Эксперт Python

5407 / 3831 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

27.05.2017, 13:18

5

Цитата
Сообщение от 151267fr
Посмотреть сообщение

число членов принадлежащих отрезку [1,2]

Отрезок — это интервал между значениями 1 и 2, а не индексы массива как в вашем решении.



0



Python задача. Найдите количество положительных, отрицательных и равных нулю элементов массива

Python задачи

Создайте массив из 20 случайных целых чисел от -10 до 10, запишите их в ячейки массива. Подсчитайте, сколько из них положительных, отрицательных и нулевых. Отобразите элементы массива и значения подсчитанных величин. Разбор задачи на python

Алгоритм решения задачи на python

1) Назначить три переменные под счётчики и присвоить им значение равное 0

2) Написать цикл for, который создаёт случайные числа и записывает их в массив, далее сравнивает и записывает +1 в соответствующий счётчик

3) Вывод на экран значения счётчиков и массива

Код для нахождения количества положительных, отрицательных и равных нулю элементов массива

Код для нахождения количества положительных, отрицательных и равных нулю элементов массива

from random import random
mins = 0
zero = 0
plus = 0
a = []
for i in range(20):
n = int(random() * 20) — 10
a.append(n)
print(n, end=’ ‘)
if n > 0:
plus += 1
elif n < 0:
mins += 1
else:
zero += 1

print(«nПоложительных чисел: «, plus)
print(«Отрицательных чисел: «, mins)
print(«Чисел равных нулю: «, zero)

Python задачи
Все задачи на python

Репост статьи

22 декабря 2022 г.

Комментарии могут оставлять только зарегестрированные пользователи!



Комментарии

Ваш комментарий будет первым !

Напиши программу, которая принимает натуральное число n, а затем n чисел от 1 до 100. выведи максимальное из них, которое заканчивается на 1. если такого числа нет, напечатай «нет».

Pascal задача.Даны натуральные числа n, m. Получите сумму m последних цифр числа n.

Python(Питон)

Формат ввода
Числа задаются одной строкой через запятые и пробелы. Все элементы списка не превосходят 10**9. Пробелов до и после запятых произвольное количество, запятая между числами строго одна.
Для преобразования строки в список строк используйте функцию split(). Для удаления пробелов используйте метод replace(). Подумайте когда удобнее удалить пробелы — до перевода строки в список или после.


Формат вывода
Одно целое число.


Пример ввода
3, 0, -1, 2, -2
Пример вывода
2

Python 2

from __future__ import print_function
import itertools
x = raw_input()
print(sum(n < 0 for n in itertools.imap(int, x.replace(' ', '').split(','))))

Результат работы программы

Python 3

string = '3, 0, -1, 2, -2'
print(len([x for x in string.replace(' ', '').split(',') if int(x) < 0]))

Понравилась статья? Поделить с друзьями:
  • Как найти максимальный элемент каждого столбца матрицы
  • Как составить рецензию на выпускную квалификационную работу
  • Как найти заработную плату водителя
  • Как составить досудебную претензию на возврат денежных средств по расписке
  • Как найти цену сережек