NOME DURAÇÃO
Curso de Python
Primeira Aula de Python
Como Instalar o Python no Windows
Características do Python
Recursos do Python
IDLE - Modo Interativo do Python
Instalando o PyCharm no Windows
Primeiro programa em Python
Comentários em Python
Indentação do código Python
Variáveis em Python
Características das Variáveis em Python
Nomenclatura das Variáveis em Python
Tipos de dados em Python
Variáveis do tipo Ponto Flutuante do Python
Entrada de Dados em Python
Operadores Aritméticos do Python
Módulo da Divisão em Python
Potenciação e Radiciação em Python
Operadores Relacionais do Python
Tomada de Decisão em Python
Estrutura if e else em Python
Depurando código Python
Operadores Relacionais Compostos do Python
Operadores Relacionais na Prática em Python
Operadores Lógicos em Python
Blocos de Instrução em Python
Blocos de Instrução em Python (Parte II)
Blocos de Instrução Python na Prática
Escopo de Nomes em Python
Estrutura de Atribuição Simples do Python
Atribuição Múltipla em Python
Operadores de Atribuição Compostos do Python
Atribuição Condicional em Python
Iteração em Python
Laços de Repetição do Python
Estrutura de repetição while em Python
A instrução for em Python
A função range() do Python
O for loop e a função range() do Python
Instrução break do Python
Instrução continue em Python
Estruturas de Dados Lista em Python
Lista, Pilha, Array, Set em Python
A classe list do Python
Classe list - Conceitos Avançados do Python
Funções da Classe list do Python
Iteração de Listas em Python
Fatiando Listas em Python
Incluindo, Alterando e Excluindo Elementos no Python
Ordenamento de Listas em Python
Quantidade de Itens em Python
Tuplas em Python
Operadores in e not in do Python
Operadores and, or e in do Python
Exemplo com Operador in em Python
Introdução às Strings em Python
Fatiando Strings com Python
Funções das Strings no Python
Comparação de Strings em Python
Iterando Strings em Python
Introdução aos Dicionários do Python
Dicionários na Prática com Python
Funções dos Dicionários no Python
Introdução às Funções em Python
Parâmetros de Função em Python
Parâmetros default em Python
Argumento de Função Nomeado vs Posicional em Python
Retornando Valores pelas Funções em Python

Nesta aula estudaremos 2 operadores do Python que são dedicado ao trabalho e manusei de listas

INTRODUÇÃO AOS OPERADORES in e not in

O operador in verifica se o operando a sua esquerda, está contido na lista a sua direita, da mesma forma que o operador not in que verifica o contrário.

Estes, são 2 operadores nativo para verificar se um determinado objeto está contido numa lista. A palavra in, do Inglês, significa, "contido em". Essa é uma maneira para simplificar a verificação se o elemento X está contido na lista Y.

>>> 2 in (1, 2, 3, 4, 5)

No código acima, perguntamos, com uso do operador in, se o número 2 está contido na Tupla definida a direita do operador. No exemplo, definimos a Tupla no mesmo instânte em que estamos fazendo a verificação, porém, poderíamos ter trabalhado com o uso de referência.

No código a seguir, estamos utilizando o operador in numa tomada de decisão para verificarmos qual bloco de instrução deve ser executado.

# x = [1, 2, 3, 4, 5]
x = range(1,6)

if 2 in x:
    print("Contido")

No código acima, inicialmente, geramos uma sequência numérica com a função range() e vinculamos a sequência retornada a variável de nome x. Feito isso, com uso da instrução if, verificamos se o elemento 2 está contido na sequência cuja referência é x, caso a expressão seja verdadeira, o bloco seguinte será executado.

ESTUDANDO ALGUMAS SITUAÇÕES

Agora, vamos estudar uma maneira de verificarmos se um valor está contido numa lista ou então, se um conjunto de valores estão contidos. Para verificarmos se mais de um valor está contido, temos que utilizar os operadores and e or. Assim, conseguimos montar expressões como: se o valor x e o valor y estiverem contidos, então faça isso. Ou então, podemos utilizar o operador or, logo, temos a seguinte expressão: se x ou y estiverem contidos, então, faça isso.

Vamos estudar alguns exemplos para melhor entendermos.

#1 - True
2 and 3 in range(1,6)
#2 - False
2 and 6 in range(1,6)
#3 - False
((1 and 6) or (5 and 6)) in range(1,6)
#4 - True
((1 and 6) or (5 and 6)) in range(1,6)
#5 - False
(10 or 2) in range(1,6)
#6 - True
(2 or 10) in range(1,6)

As 4 primeiras expressões são fáceis de entender, porém, as 2 últimas podem resultar um pouco de dúvidas. Isso porque, quando verificamos se o valor 10 ou o valor 2 estão contidos no intervalo de 1 à 5, o valor retornado será Falso. Porém, se invertermos os valores, perguntando se 2 ou 10 estão contidos, o valor lógico retornado será verdadeiro.

A lógica por detrás dessas 2 expressões, encontra-se na maneira como o Python avalia as expressões. A regra é a seguinte: quando a primeira condição não satisfazer a expressão, interrompe-se a verificação das demais expressões. Logo, como o valor 10 não está contido, temos que a próxima expressão não será avaliada, até porque, a primeira retornou um valor lógico falso. Porém, o contrário é verdadeiro, até porque, a primeira expressão é verdadeira.

CASO DE USO ESPECIFICO

Vamos analisar agora, uma situação interessante decorrente do do uso do operador in que acabamos de estudar. Ao invés de escrevermos uma expressão que faz 3 comparações ligando-as com o Operador Lógico de conjunção and, escreveremos utilizando o operador in.

a = 10
b = 25
c = 66

x = int(input("Digite um número: "))
if(x == a or x == b or x == c):
    print("Está contido")

No código acima, verificamos se o valor da variável x é igual a variável a, b ou então, c. Essa é uma maneira funcional e lógica, mas há uma forma mais elegante de dizer a mesma coisa.

a = 10
b = 25
c = 66

x = int(input("Digite um número: "))
 # if(x == a or x == b or x == c):
if(x in [a,b,c]):
    print("Está contido.")
else:
    print("Não está contido.")

O código acima é semelhante ao que fizemos anteriormente, a diferença está, na tomada de decisão. Ao invés de verificarmos 3 condições, para sabermos se o valor de x é igual a algum dos 3 valores pré-definido, perguntamos se o valor de x está contido na lista formada pelos 3 valores possíveis.

Observe que o retorno em ambas verificações será o mesmo, ainda que a expressão seja totalmente diferente.

UM EXEMPLO MAIS ELABORADO

Agora, vamos fazer um simples programa que declara uma lista onde cadas elemento é o nome de uma cor. Em seguida, pediremos para o usuário informar o nome de uma cor. Feito isso, guardamos numa variável a cor escolhida pelo usuário e então, verificaremos se a mesma está contida na nossa lista de cores. Caso esteja, imprimiremos uma frase na tela informando que a cor informada é válida, do contrário, imprimiremos uma outra frase, informando que a cor não é válida.

cores = ("azul","amarelo","vermelho","branco")

while True:
    valor = input("Digite o nome de uma cor ou 0 para sair")

    if valor == "0":
        break

    if valor in cores:
        print("Essa cor está contida na lista!")
    else:
        print("Essa cor NÃO está contida na lista!")

No código acima, inicialmente, declaramos uma Tupla e definimos 4 elementos do tipo str, cada um com o nome de uma cor. Em seguida, criamos um laço de repetição infinito com a instrução while.

No bloco de código da instrução while, inicialmente, pedimos para o usuário informar o nome de uma cor, em seguida, com uso da instrução if, verificamos se a cor digitada é igual a letra "0", caso seja, finalizamos o laços de repetição infinito, como também, será finalizado o programa.

Na sequência, definimos outra Tomada de Decisão Simples, e verificamos se o valor contido na variável valor, que sempre irá conter o valor digitado pelo usuário, é igual a algum valor contido na Tupla cores. Se a expressão for verdadeira, imprimiremos uma mensagem para o usuário, do contrário, imprimiremos outra.



Tags curso, python

Comentários

comments powered by Disqus