Что я делаю не так с этим кодом для хакерранка? - PullRequest
0 голосов
/ 04 апреля 2020

Я кодировал эту проблему для HackerRank и столкнулся с таким количеством проблем. Проблема называется «Плюс минус», и я делаю это в Python 3. Направления на https://www.hackerrank.com/challenges/plus-minus/problem. Я пробовал так много вещей, и он говорит, что "нет ответа на стандартный вывод". Я думаю, что не тип возвращается. Вот код ::10000

def plusMinus(arr):
p = 0
neg = 0
z = arr.count(0)
no = 0

for num in range(n):
    if arr[num] < 0:
        neg+=1
    if arr[num] > 0:
        p+=1
    else:
        no += 1
    continue
return p/n

1 Ответ

1 голос
/ 04 апреля 2020

Следующие проблемы:

1) переменная n, представляющая длину массива, должна быть передана в функцию plusMinus

2) Нет необходимости поддерживать дополнительную переменную no, так как вы уже рассчитали нулевой счет. Следовательно, мы можем устранить дополнительное условие else.

3) Нет необходимости использовать оператор continue, так как после оператора нет кода.

4) Функция должна выведите значения вместо возврата.

Посмотрите на следующий код с правильными именами переменных для простоты понимания:

def plusMinus(arr, n):

    positive_count = 0
    negative_count = 0
    zero_count = arr.count(0)

    for num in range(n):
        if arr[num] < 0:
            negative_count += 1
        if arr[num] > 0:
            positive_count += 1

    print(positive_count/n)
    print(negative_count/n)
    print(zero_count/n)

if __name__ == '__main__':
    n = int(input())

    arr = list(map(int, input().rstrip().split()))

    plusMinus(arr, n)
...