Kethllen Andrey Santos
UFU
2016
Informática para Biotecnologia
Antes de conhecer as instruções de controle de fluxo, como comandos condicionais ou de repetição, é necessário entender a representação de Yes e No, além de saber como escrevê-los no código em Python.
Operadores Lógicos
Valores booleanos
>>> word = True
>>> word
True
>>> word2 = False
>>> word2
False
>>>
>>> False
False
>>>
>>> true
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>>
>>> False = 3 * 4
>>> False
12
>>> True = 4 + 4
>>> True
8
Operadores de comparação
Operador | Significado |
---|---|
== | igual a |
!= | diferente de |
< | menor que |
> | maior que |
>= | menor ou igual a |
<= | maior ou igual a |
Testando alguns operadores:
Operadores de comparação
>>> #Testando alguns operadores
...
>>> 1230 = 1230
File "<stdin>", line 1
SyntaxError: can't assign to literal
>>> 1230 == 1230
True
>>>
>>> 10.000 == 10.0000
True
>>>
>>> 10.000 != 10.0000
False
>>> "Casa" == "Casa"
True
>>> "CASA" == "Casa" # Maiúscula x Minúscula
False
Observe que podemos comparar valores string além de valores inteiros e pontos flutuantes.
Operadores de comparação
>>> 4 > 1.2
True
>>>
>>> 20.00000001 < 20.00000001
False
>>> 20.00000001 < 20.0000001
True
>>> 2312 <= 2313
True
>>> 2312 >= 2312
True
>>> 2312 >= 2313
False
>>>
Operadores booleanos
>>> True
True
>>>
>>> True and True
True
>>>
>>> True and False
False
>>>
>>> False and True
False
>>>
>>> False and False
False
>>>
Operadores booleanos binários
Operadores booleanos
Tabela Verdade (and)
Expressão | Avaliação |
---|---|
True and True | True |
True and False | False |
False and True | False |
False and False | False |
Exemplo de circuito eletrônico
Expressão | Avaliação |
---|---|
True or True | True |
True or False | True |
False or True | True |
False or False | False |
Tabela Verdade (or)
De modo diferente de and e or, o operador not atua somente sobre um valor booleano (ou uma expressão). O operador not simplesmente é avaliado como o valor booleano oposto.
Operadores not
>>> not True
False
>>>
>>> not False
True
Podemos aninhar operadores na mesma expressão:
>>> not not True
True
>>>
>>> not not not True
False
Tabela Verdade do Operador not
Expressão | Avaliação |
---|---|
not True | False |
not False | True |
Operadores de comparação e booleanos numa mesma expressão
>> (10 < 21) and (10 > 2)
True
>>> (10 < 21)
True
>>>
>>> (10 > 2)
True
>>>
>>> x = 10
>>> y = 21
>>> z = 2
>>> (x < y) and (x > z)
True
Operadores de comparação e booleanos numa mesma expressão
Monta a expressão True and (10<z)
Atribui a z o valor de 2
Monta a expressão True and (10<2)
Monta a expressão True and True
Resulta em True
Avalia a expressão da esquerda entre parenteses (x<y)
Atribui a x o valor 10
Atribui a y 0 valor 21
Monta a expressão (10 < 21) and (10<z)
>>> x = 10
>>> y = 21
>>> z = 2
>>> (x < y) and (x > z)
True
Execução condicional (if)
Execução condicional (if)
Execução condicional (if)
>>>
>>> numero = input()
11
>>> if(numero>0):
... print("O número digitado é positivo")
...
O número digitado é positivo
A expressão booleana depois da instrução if é chamada de condição
Se ela é verdadeira (true), então a instrução indentada é executada
'Se não, nada acontece.
>>> numero = int(input())
-1
>>> if(numero>0):
... print("O número digitado é positivo.")
...
>>>
Execução condicional (if)
Cabeçalho:
Primeiro comando
...
Último comando
Execução alternativa (else)
>>> numero = int(input())
10
>>> if(numero%2==0):
... print("O número digitado é par.")
... else:
... print("O número digitado é ímpar.")
...
O número digitado é par.
>>>
>>> numero = int(input())
11
>>> if(numero%2==0):
... print("O número digitado é par.")
... else:
... print("O número digitado é ímpar.")
...
O número digitado é ímpar.
>>>
Condicionais Encadeadas
>>> x = int(input("Digite x: "))
Digite x: 10
>>> y = int(input("Digite y: "))
Digite y: 5
>>> if x < y:
... print("%d é menor que %d" %(x,y))
... elif x > y:
... print("%d é maior que %d" %(x,y))
... else:
... print("%d é igual a %d" %(x,y))
...
10 é maior que 5
>>> x = int(input("Digite x: "))
Digite x: 1000
>>> y = int(input("Digite y: "))
Digite y: 1001
>>> if x < y:
... print("%d é menor que %d" %(x,y))
... elif x > y:
... print("%d é maior que %d" %(x,y))
... else:
... print("%d é igual a %d" %(x,y))
...
1000 é menor que 1001
>>>
>>> x = int(input("Digite x: "))
Digite x: 1000
>>> y = int(input("Digite y: "))
Digite y: 999
>>> if x < y:
... print("%d é menor que %d" %(x,y))
... elif x > y:
... print("%d é maior que %d" %(x,y))
... else:
... print("%d é igual a %d" %(x,y))
...
1000 é maior que 999
>>>
Condicionais Encadeadas
Condicionais Aninhadas
>>> x = int(input("Digite x: "))
Digite x: 5
>>> y = int(input("Digite y: "))
Digite y: 10
>>> if x == y:
... print("%d e %d são iguais" %(x,y))
... else:
... if x < y:
... print("%d é menor que %d" %(x,y))
... else:
... print("%d é maior que %d" %(x,y))
...
5 é menor que 10
>>>
Embora a indentação das instruções torne a estrutura aparente, condicionais aninhados tornam-se difíceis de ler rapidamente
Em geral, é uma boa ideia evitar o aninhamento quando for possível.
Condicionais Aninhadas
>>> x = int(input("Digite o valor de x: "))
Digite o valor de x: 2
>>> if 0 < x:
... if x < 10:
... print("X é um número positivo de um só algarismo")
...
X é um número positivo de um só algarismo
>>>
>>> if 0 < x and x < 10:
... print("X é um número positivo de um só algarismo")
...
X é um número positivo de um só algarismo
>>> if 0 < x < 10:
... print("X é um número positivo de um só algarismo")
...
X é um número positivo de um só algarismo
Return
>>> def printLog(x):
... if x < 0:
... print("Somente números positivos, por favor.")
... return
... resultado = math.log(x,10)
... print("O log de %d é %f " %(x,resultado))
...
>>> printLog(10)
O log de 10 é 1.000000
>>> printLog(-10)
Somente números positivos, por favor.
>>> printLog(100)
O log de 100 é 2.000000
>>>
Exercícios