Estruturas de decisão
Estruturas de decisão servem para que verificarmos certas situações que podem ser executadas por dois ou mais caminhos diferentes. O que precisamos mostrar ao programa é que haverá certas condições a serem comparadas para essas sejam executados esses caminhos diferentes. Para isso, utilizamos os mesmos operadores relacionais das linguagens tradicionais.
Operadores relacionais ou operadores comparativos
Os operadores relacionais utilizados em Pyhton são:
>, = e <=
No interpretador do Idle, podemos fazer os seguintes testes, obtendo respostas True ou False (ou 1 ou 0 respecivamente equivalentes):
>>>print(1 > 2)
>>> print("a" > "b")
>>> print("a" >> print(ord("a"))
>>> print(ord("b"))
>>> print(chr(97))
>>> print(chr(98))
>>> print(100 == 100)
Operadores lógicos
São usados para fazer combinações de duas ou mais expressões de condição, obtendo um valor lógico. Podemos utilizar os comandos “and”, “or” e “not”. No interpretador do Idle, podemos ter o seguinte exemplo:
>>> True and True
>>> True and False
>>> False and True
>>> False and False
>>> 1 or 0
>>> 1 or 1
>>> 0 or 1
>>> 0 and 0
>>> not True
>>> not False
Estruturas de decisão
Em python, temos a estrutura de decisão mais simples em linguagens de programação tradicional, sendo ela o “if” e também o seu complemento “else”.
Como exemplo abaixo, podemos aplicar somente o if
def main():
opcao = int(input("Deseja Continuar? Digite 1 para SIM e 2 para NAO "))
if opcao == 1:
print("Usuario escolheu continuar")
if __name__ == '__main__':
main()
Como também pode aplicar com a extensão else:
def main():
opcao = int(input("Deseja Continuar? Digite 1 para SIM e 2 para NAO "))
if opcao == 1:
print("Usuario escolheu continuar")
else:
print("Usuario escolheu parar")
if __name__ == '__main__':
main()
Também é possível aplicar if´s encadeados:
def main():
print("Opcoes de Operacoes\n")
print("1 - Soma")
print("2 - Subtracao")
print("3 - Multiplicacao")
print("4 - Divisão")
opcao = int(input("Escolha uma opcao: "))
valor1 = int(input("Digite valor1: "))
valor2 = int(input("Digite valor2: "))
if opcao == 1:
resultado = valor1 + valor2
print("O resultado da soma é: %5.2f" %(resultado))
elif opcao == 2:
resultado = valor1 - valor2
print("O resultado da subtracao é: %5.2f" %(resultado))
elif opcao == 3:
resultado = valor1 * valor2
print("O resultado da multiplicacao é: %5.2f" %(resultado))
elif opcao == 4:
resultado = valor1 / valor2
print("O resultado da divisão é: %5.2f" %(resultado))
else:
print("Não escolheu nenhuma das opções")
if __name__ == '__main__':
main()
Podemos reparar que mesmo tendo mais de um comando para cada If elif, não temos carateres de agrupamentos por bloco, sendo que a indentação é suficiente para que isso seja feito.
Até a versão do Python 3.x, não existe a função Switch -Case parecida com a linguagem C, porém Python utiliza o conceito de dicionário, a qual possuem atributos de chave-valor.