Как я могу получить ложные значения, если одно утверждение верно? - PullRequest
0 голосов
/ 23 сентября 2019

Извините, если это повторный вопрос.Это мой первый раз на StackOverflow.Я также новичок в Python.

Итак, вот код.

def count_positives_sum_negatives(arr):
    #your code here
  array = [0, 0] #array[0] for sum of positives.  array[1] for sum of negatives.

  for x in arr:
    if x > 0:
      array[0] = array[0] + x
      print(array)



count_positives_sum_negatives([1,2,3,4,-5])

По сути, я хочу создать массив с подсчетом суммы позитивов и суммы негативов.С данным массивом он должен возвращать [10, -5]. А сейчас я хочу кое-что узнать и понять. Как я могу также получить ложное значение, если одиночное, если утверждение верно?Я думаю о двойных операторах if или while, но возможно ли это с помощью одного оператора if?
Когда условие условия true, массив становится [10, 0], так что теперь у меня есть сумма положительных значений.Как я должен получить сумму отрицаний -5, которая является ложным значением с одним оператором if?

Вопрос 2: Почему я получаю одно повторное значение?Я не использую return для остановки цикла, поэтому я смущен этим кодом.

for x in arr:
    while x > 0:
       print(x) # Print 1 again and again...

Ответы [ 5 ]

0 голосов
/ 23 сентября 2019

это не Массив это список [] , поэтому попробуйте, если x> 0: body .. else: body ;;

0 голосов
/ 23 сентября 2019

Извините, я мог бы ответить на свой вопрос.

Вот он.

def count_positives_sum_negatives(arr):
    #your code here
  array = [0, 0] #array[0] for sum of positives.  array[1] for sum of negatives.

  for x in arr:
    if x > 0:
      array[0] = array[0] + x
    else:
      array[1] = array[1] + x
    print(array)



count_positives_sum_negatives([1,2,3,4,-5])

Спасибо за помощь, ребята.

0 голосов
/ 23 сентября 2019

Вы можете попробовать что-то вроде этого:

for element in array:
    if element > 0:
      aggregation[0] += element
    else:
      aggregation[1] += element

Если вы хотите компактную версию:

for element in array:
    aggregation[0 if element>0 else 1] += element
0 голосов
/ 23 сентября 2019

Один из способов сделать это - без использования условия if вообще:

def count_positives_sum_negatives(arr):
    #your code here
  array = [0, 0] #array[0] for sum of positives.  array[1] for sum of negatives.

  for x in arr:
     array[int(x<0)] += x
  print(array)



count_positives_sum_negatives([1,2,3,4,-5])
0 голосов
/ 23 сентября 2019

Используйте следующий синтаксис:

if x>0:
   ... 
else:
   ...

Дополнительный вопрос: должно быть if, а не while.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...