NOT operator in python

5

In java we have the not operator, we can use it like this:

if (!metodo()) {
    //código
}

I'm just getting to know python now, and I have a little problem:

I have a function that adds names to a list:

def adiciona_perfis():
    quantidade = 0 
    nome = raw_input("Digite seu nome ")
    nomes.append(nome)
    quantidade += 1

And another that checks the variable quantity:

def tem_vaga(quantidade):
    if quantidade == 3:
        return False
    return True

I wanted to call the tem_vaga () function inside the add_perfis function. But using the not, in Java for example, could do so:

if (!tem_vaga(quantidade)) {
    //Código
}

How can I do this in Python?

    
asked by anonymous 24.10.2016 / 21:44

4 answers

7

It's not

Create a .py file with the code below and run.

def tem_vaga(quantidade):
    if quantidade == 3:
        return False
    return True


def adiciona_perfis():
    quantidade = 3
    if (not tem_vaga(quantidade)):
        print("oi")


if __name__ == "__main__":
    adiciona_perfis()
    
24.10.2016 / 21:51
6

In Python you also have the not operator:

def adiciona_perfis():
    quantidade = 0 
    nome = raw_input("Digite seu nome ")
    nomes.append(nome)
    quantidade += 1

    if not tem_vaga(quantidade):
      # Código...
    
24.10.2016 / 21:51
2

Just to complement, a function where you make only a comparison and return only True or False, can be simplified in this way:

def tem_vaga(quantidade):
    return quantidade == 3

In the case above you will use the not at the time of calling the function: if not tem_vaga(4): (...)

Or, using the not operator inside the function:

def tem_vaga(quantidade):
    return not quantidade == 3

By the way, I believe you should be doing the quantity comparison is less than or equal to 3, ie: quantidade <= 3 .

    
26.10.2016 / 05:48
2

In your case, you could use the not operator or check using the comparison operator == arriving if it is False .

if tem_vaga() == False:
      // Não tem vaga

if not tem_vaga():
   // não tem vaga
    
26.10.2016 / 17:55