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 os operadores lógicos na linguagem Python. Aprenderemos também a definição de valor lógica, a definição de conjunção, disjunção e de sub-expressões lógicas.

INTRODUÇÃO AOS OPERADORES LÓGICOS

Os operadores lógicos unem expressões lógicas formando assim, uma nova expressão que é composta por 2 ou mais sub-expressões. O resultado lógico de expressões compostas será a relação entre as sub-expressões. Como estudamos, toda expressão lógica avaliada resultará num valor lógico e a relação entre vários valores lógicos é um outro valor lógico.

Quando estudamos os Operadores Relacionais aprendemos a obter o valor lógico entre 2 operandos, no caso, entre o operando que está a esquerda do operador e o operando que está a direita do Operador Relacional. Como resposta, obtemos valores do tipo Booleano, isto é, verdadeiro [True] ou falso [False].

Os operadores lógicos por sua vez, permite-nos unir 2 expressões ligando-as com os conectivos lógicos matemáticos que são, o conectivo E e o conectivo OU.

VALOR LÓGICO

O valor lógico é um tipo de dado binário, isto é, assume um valor dentre duas opções: verdadeiro ou falso.

Os valores lógicos são de fato a base de toda a computação, até porque, temos que, o bit está ligado ou o bit está desligado. O valor lógico em sua forma mais primitiva assume o número 1 quando verdadeiro e assume o valor 0 quando falso.

Toda expressão avaliada na computação de maneira geral, resulta num valor lógico, isto é, ou a expressão é verdadeira, ou a expressão é falsa. Como aprenderemos de agora em diante, todas as estruturas da linguagem Python baseiam-se nos 2 valores lógicos possíveis.

O TIPO DE DADO BOOLEANO (bool)

O tipo de dado Booleano, que em Python é representado pela classe bool assume um valor dentre 2 valores constante: True ou False. A palavra Booleano vem do sobrenome do filósofo e matemático George Boole o criado da Álgebra Booleana .

Se formos no IDLE e verificarmos com a instrução type() o tipo dos valores lógicos ou então, o tipo de uma expressão lógica, teremos como resposta o valor <class 'bool'>.

>>> type(True)
<class 'bool'>

>>> type(False)
<class 'bool'>

>>> type(1 == 1)
<class 'bool'>

Como podemos ver acima o Python reconhece as 2 constantes como pertencentes ao tipo de dado bool, no caso, as constantes True e False. É importante notar que ambas constantes iniciam com letra maiúscula, do contrário, o Python tratará como sendo uma referência desconhecida.

CONECTIVOS LÓGICOS

As linguagens de programação, utilizam os conectivos lógicos da lógica formal, ou melhor da lógica Aristotélica, na construção de expressões lógicas. Existem 2 conectivos lógicos e, mesmo que não os conheçamos com o nome de conectivos lógicos, utilizamo-os constantemente ao conversarmos ou então, para explicarmos qualquer disciplina a outra pessoa.

Os dois conectivos lógicos são:

  1. Conectivo de conjunção: E
  2. Conectivo de disjunção: OU

Por exemplo, a simples frase A e B são caracteres iguais implica numa expressão lógica e acabamos de representar a mesma textualmente. Porém, a expressão pode ser facilmente escrita matematicamente, ou então, com o uso de uma linguagem de programação.

Por essa razão, devemos olhar para as Linguagens de Programação como sendo, antes de tudo, formas ou estilos de Notação lógica. Como sabemos, existe a notação matemática que possui suas próprias regras e sua própria sintaxe. Existem algumas linguagens de programação que por exemplo, suportam a sintaxe matemática na definição de expressões e na composição de sentenças lógicas.

Por fim, os conectivos lógicos devem ser entendidos como ferramenta de notação utilizada para unir duas ou mais expressões, e como resultado da união, forma-se uma nova expressão.

AVALIAÇÃO DE EXPRESSÕES

A avaliação de expressão em linguagens de programação é, o trabalho que o compilador ou interpretador faz, quando este, através de 2 expressões, avalia se a proposição, isto é, a expressão avaliada é ou não verdadeira.

É importante observar que as expressões, são sempre avaliadas se são verdadeiras e é bom esse entendimento, até porque, podia ser o contrário, e as vezes será, quando assim desejarmos e utilizarmos uma notação especifica para isso.

Então, por padrão, todas as expressão são avaliadas com a pergunta se são ou não verdadeiras.

TABELA DE VALORES LÓGICOS

A tabela de valor lógica é uma tabela que mostra o resultado da avaliação de 2 expressões lógicas. É importante observar que essa tabela NÃO é uma convenção, mas sim, o resultado da dedução lógica e que você pode facilmente deduzi-la.

True E True é True True E False é False False E True é False

True OU False é True False OU True é True True OU True é True False OU False é False

O CONECTIVO DE CONJUNÇÃO E

O conectivo lógico de conjunção E, une a expressão a sua esquerda a expressão a sua direita. Expressões com o uso do conectivo de conjunção originam frases em Português, mais ou menos assim: A é verdadeiro e B é verdadeiro.

Nas situações em que A for verdadeiro e B também, o resultado, segundo a tabela lógica, será também verdadeiro.

x = 1
(x > 0) and (x < 100)

No exemplo acima, temos uma expressão lógica composta constituida por 2 expressões lógicas simples e, ligadas pelo conectivo de conjunção.

Primeira expressão simples: (var1 == 0) Segunda expressão simples expressão: (var1 == 0) Conectivo lógico de conjunção: and

Para analisarmos uma expressão lógica composta, precisamos antes, analisar suas expressões lógicas simples.

No trecho de código acima, a primeira sub-expressão, analisas se o valor da variável x é maior do que 0. A variável x está declarada na linha anterior a expressão e inicializada com o valor 1, por isso, a primeira sub-expressão é verdadeira.

A segunda expressão, analisa se o valor da variável x é menor do que 100. O valor da variável x é igual a 1 e, por isso, menor do que 100. Por fim, obtivemos 2 valores lógicos e agora podemos deduzir o resultado lógica de toda expressão e o fazemos no trecho de código a seguir.

x = 1
(True) and (True)

No código acima, temos a mesma expressão do exemplo anterior, porém, substituimos as duas expressões lógicas simples por seus respectivos valores lógicos, isto é, o valor decorrente da análise lógica de cada sub-expressão.

A expressão (True) and (True), se comparada com a Tabela Lógica de Valores, tem-se que o valor decorrente dessa segunda análise, será True, até porque, True and True == True.

CONECTIVO DE DISJUNÇÃO OU

O conectivo lógico de disjunção OU liga a expressão a sua esquerda a expressão a sua direita. Expressões com o uso do conectivo de disjunção dão origem a frases em Português mais ou menos assim: A é verdadeiro OU B é verdadeiro.

O operador lógico OU sempre precisará que uma das 2 sub-expressões conectadas sejam verdadeiras para que, a expressão num todo seja verdadeira.

x = 1
(x > 10) ou (x < 100)

A expressão lógica composta que temos no código acima, será desmembrada como estudado anteriormente, e agora, para que a avaliação seja verdadeira, uma das 2 expressões simples precisam ser verdadeiras.

A primeira expressão (x > 10), a variável``x`` está declarada na linha anterior e inicializada com o valor igual a 1, logo, essa expressão é falsa, até porque, o valor de x não é maior do que 10.

A segunda expressão (x < 100) está perguntando se o valor da variável x é menor do que o número 100. Essa expressão é verdadeira, até porque, o número 1 é menor do que o número 100.

No código a seguir, temos a expressão originada a partir do código anterior.

x = 1
(False) or (True)

Agora, temos que o primeiro valor lógico é falso, enquanto o segundo é verdadeiro. Esse valores estão ligados pelo conectivo de disjunção que será verdadeiro caso uma das sub-expressões o seja. Como o segundo valor lógico é verdadeiro, o valor decorrente dessa análise lógica será verdadeiro.

EXPRESSÕES SIMPLES E COMPOSTAS

Os operadores relacionais obtém a relação entre os operandos e, por isso, podemos chamar esse tipo de expressão como sendo, expressões simples.

As expressões compostas, por sua vez, são a união de 2 ou mais expressões simples e, ligadas por algum conectivo lógico. A seguir, temos um exemplo utilizando o conectivo lógico de conjunção que une 2 expressões e dá origem a uma nova expressão lógica.

EXEMPLO 1
isso E isso

EXEMPLO 2
x E y

Em ambos exemplos, estamos unindo 2 membros, mas não estamos perguntando nada. Porém, a frase correta e que é utilizada pela grande maioria das linguagens de programação, senão todas, é a seguinte: A é verdadeiro e B é verdadeiro, logo .... Chamamos isso de expressão lógica ou melhor, expressão lógica composta, até porque, a expressão se origina de duas outras expressões, isto é, a que está ao lado esquerdo do operador relacional e a expressão que está ao seu lado direito.



Tags curso, python, operadores, operadores lógicos, and, or, not, is, is not, in, not in, blog

Comentários

comments powered by Disqus