Python counting by function, BASIC

Asked

Viewed 119 times

0

Create a program in Python that, for any list of integer values, gets (through functions) and prints on the screen, the amount of positive, null and negative values of the list.

My doubt is to do this counting by functions, always end up returning a wrong value the only 1.

def contaPositivo(lista):
    positivo = 0
    for num in lista:
        if num >0:
            positivo = positivo + 1
        return positivo

def contaNegativo(lista):
    negativo = 0
    for num in lista:
        if num < 0:
            negativo = negativo + 1
        return negativo

lista = list()
q = int(input('Quantos valores haverá na lista ?'))
while q < 0:
    print('Erro')
    q = int(input('Quantos valores haverá na lista ?'))

for c in range(q):
    num = int(input('Valor:'))
    lista.append(num)
  • Milton, edit the question and put your code.

1 answer

1


Milton, as this reply pay attention to indentation!

Are you putting the return at the same indentation level as if within the functions contaPositivo and contaNegativo, so it is returning erroneous values.

Observe:

def contaPositivo(lista):
    positivo = 0
    for num in lista:
        if num >0:
            positivo = positivo + 1
        return positivo #este return deveria estar no mesmo nível do loop for
                                  #e não no nível do if

Your correct code will look like this:

def contaPositivo(lista):
    positivo = 0
    for num in lista:
        if num > 0:
            positivo = positivo + 1
    return positivo #indentação arrumada.

def contaNegativo(lista):
    negativo = 0
    for num in lista:
        if num < 0:
            negativo = negativo + 1
    return negativo #indentação arrumada

lista = list()
q = int(input('Quantos valores haverá na lista ?'))
while q < 0:
    print('Erro')
    q = int(input('Quantos valores haverá na lista ?'))

for c in range(q):
    num = int(input('Valor:'))
    lista.append(num)
print("valores positivos", contaPositivo(lista))
print("valores negativos", contaNegativo(lista))

I recommend reading:

INDENTATION OF PYTHON CODE

Browser other questions tagged

You are not signed in. Login or sign up in order to post.