Em Python, assim como na maioria das linguagens de programaç�o, o programa deve ser capaz de tomar decis�es com base em valores e resultados gerados durante sua execuç�o, ou seja, deve ser capaz de decidir se determinada instruç�o deve ou n�o ser executada de acordo com uma condiç�o. Para atender a esse tipo de situaç�o, podemos utilizar instruç�es especiais denominadas estruturas condicionais. Neste artigo, veremos como funciona e como utilizar a estrutura de controle condicional IF em Python.
Estruturas de condiç�o com o IFO IF � uma estrutura de condiç�o que permite avaliar uma express�o e, de acordo com seu resultado, executar uma determinada aç�o. No C�digo 1 a seguir, temos um exemplo de uso do IF no qual verificamos se a vari�vel idade � menor que 20. Em caso positivo, imprimimos uma mensagem na tela, e em caso negativo, o c�digo seguir� normalmente, desconsiderando a linha 3. idade = 18 if idade < 20: print('Voc� � jovem!') C�digo 1. Uso do IF Como podemos notar, essa estrutura � formada pela palavra reservada if, seguida por uma condiç�o e por dois pontos (:). As linhas abaixo dela formam o bloco de instruç�es que ser�o executadas se a condiç�o for atendida. Para isso, elas devem ser identadas corretamente, respeitando a especificaç�o do Python. Nesse c�digo, apenas a instruç�o da linha 3 � executada, e por isso ela est� mais avançada. Se fosse necess�ria a execuç�o de outras linhas no caso da idade ser menor que 20, elas tamb�m deveriam estar no mesmo n�vel de identaç�o da linha 3. Operadores de comparaç�oUm assunto diretamente relacionado �s estruturas de condiç�o e repetiç�o s�o os operadores de comparaç�o. Como o nome sugere, eles s�o usados para avaliar o valor de duas ou mais express�es/vari�veis e compar�-las. Na linha 2 do c�digo que vimos anteriormente, por exemplo, comparamos a vari�vel idade com o valor 20, por meio do operador menor que (<). Na Tabela 1 podemos ver todos os operadores de comparaç�o da linguagem Python e seu significado/aplicaç�o.
Tabela 1. Operadores de comparaç�o em Python � importante observar que o operador de comparaç�o de igualdade � formado por dois sinais de igual (==), enquanto um �nico sinal corresponde ao operador de atribuiç�o. Estrutura de condiç�o IF-ELIF-ELSEVimos anteriormente como utilizar o IF para executar uma aç�o caso uma condiç�o seja atendida. No entanto, nenhum comportamento espec�fico foi definido para o caso de a condiç�o n�o ser satisfeita. Quando isso � necess�rio, precisamos utilizar a palavra reservada else. Adicionalmente, se existir mais de uma condiç�o alternativa que precisa ser verificada, devemos utilizar o elif para avaliar as express�es intermedi�rias antes de usar o else. O C�digo 2 apresenta uma demonstraç�o dessas instruç�es. idade = int(input('Digite sua idade: ')) if idade >= 10 and idade < 20: print('Voc� � adolescente') elif idade >= 20 and idade < 30: print('Voc� � jovem') elif idade >= 30 and idade <= 100: print('Voc� � adulto') else: print('Valor n�o encontrado!') C�digo 2. Estrutura condicional completa com if-elif-else Na linha 2, verificamos se o valor informado est� dentro de uma faixa de valores espec�fica. Caso a condiç�o seja satisfeita, o programa executar� a linha 3. Por outro lado, caso o resultado n�o seja o esperado, ent�o o programa verificar� o pr�ximo condicional, na linha 4 e, caso ele seja verdadeiro, a linha 5 ser� executada. O mesmo ocorre para a verificaç�o da linha 6. Por fim, se nenhuma das condiç�es foi satisfeita, o programa executar� o que � especificado no bloco else. Estruturas de controle condicionais est�o presentes na maioria das linguagens de programaç�o e representam uma parte fundamental de cada uma delas. Sendo assim, � muito importante conhecer a sintaxe e o funcionamento dessas estruturas. Confira tamb�mProgramação em Python Comandos de Decisão / Comandos de Seleção Condições - Expressões Relacionais Uma condição na linguagem Python é definida como uma expressão que pode ser verdadeira ou falsa. A este tipo de expressão dá-se o nome de expressão relacional ou comparação. Por exemplo, 3 > 2 uma expressão relacional que possui valor verdadeiro. Por outro lado, 4 < 1 é uma expressão que possui valor falso. Os operadores (< e >) usados nos exemplos acima são chamados de operadores relacionais pois possibilitam saber qual a relação existente entre seus dois operandos. Além destes dois existem mais 4 operadores relacionais, que podem ser vistos na tabela seguir: Tabela - Operadores Relacionais
Acesse a página a seguir para testar o uso de operadores relacionais: https://learnpython.trinket.io/learn-python-part-2-logic-expressions#/booleans/booleans Experimente digitar um progrma como este x = 10 y = 12 print('x > y é ',x>y) Como 12 é maior do que 10, então a expressão x>y é falsa, o que resulta em False, em Python. Condições - Expressões Lógicas Além dos operadores relacionais, existem os chamados operadores lógicos ou "conectivos lógicos". Estes, servem para conectar/combinar duas expressões relacionais. Os operadores lógicos da linguagem Python são apresentados na tabela a seguir: Operadores Lógicos
Quando aplicados a valores lógicos True e False, este operadores produzem os resultados apresentados nas tabelas apresentadas a seguir Tabela verdade para operadores AND e OR
Os operadores or e and devem ser sempre usados entre duas expressões relacionais como por exemplo:
Já o operador not deve ser usado antes de uma expressão relacional, para inverter seu valor, como por exemplo:
Acesse a página a seguir para testar o uso de operadores relacionais: Precedência de Operadores A execução as expressões em Python segue a seguinte tabela de precedência. Tabela de precedência em Python
Comando de Seleção IF O comando if serve para selecionar que parte de um código será executado. Por exemplo, o programa a seguir informa que um aluno está aprovado por média, se a nota dele for maior ou igual a 7.0. Teste o programa com valores diversos entre 0 e 10, e veja o resultado. a = input("Digite sua nota: ") nota = float (a) if nota >=7.0: print ("Você está aprovado por média.")if nota < 7.0:
Note que o comando que está na linha imediatamente após cada IF foi adicionadoum TAB, o que é obrigatório em Python. Caso isto não seja feito, um erro será gerado. Veja no exemplo a seguir.
a = input("Digite sua nota: ") A linha assinalada em vermelho não contém um TAB no seu início, o que irá gerar um erro na execução, como este: File "Decisao1.py", line 7 Para evitar uma sequência longa de IFs é possível agregar o comando else a um comando if. a = input("Digite sua nota: ") if nota >=7.0: print ("Você está aprovado por média.") else: print ("Você não está aprovado por média.") Usando o comando IF-ELSE o código a ser executado após o teste depende do valor da expressão lógica que for colocada após o IF. Caso esta expressão seja verdadeira, será executado o que está na linha seguite ao
Blocos de Comandos Note que as linhas marcadas em vermelho nos dois exemplos anteriores são terminadas pelo sinal de dois-pontos ":". Este símbolo define o início de uma estrutura denominada BLOCO. Esta estrutura é usada quando é preciso "separar" um ou mais comandos, de outro grupo comandos do código. Nos exemplos, o que se deseja é separar o bloco que será executado no IF, daquele bloco que será executado no ELSE. Além do símbolo dois-pontos no final da linha, deve-se colocar todos os comandos que pertencem a um mesmo bloco deslocados/alinhados à direita, usando a tecla TAB. No exemplo a seguir, o bloco do IF possui dois comandos, já o bloco do ELSE, três. a = input("Digite sua idade : ") if idade >= 18: print ("Você já pode dirigir.") # primeiro comando do bloco do IF print ("Lembre-se ! Se for dirigir, não beba!") # segundo comando do bloco do IF else: print ("Você ainda pode dirigir.") # primeiro comando do bloco do ELSE tempoQueFalta = 18 - idade # segundo comando do bloco do ELSE print ("Faltam ", tempoQueFalta, "anos" ) # terceiro comando do bloco do IF Ainhamento de IFs Quando é preciso refinar uma condição, tomando uma decisão depois que outra já foi tomada, usa-se o aninhamento de IFs. No
exemplo a seguir, caso a nota de um aluno seja menor do que 7, ainda é
preciso testar se ele tem uma nota maior ou igual a 4 para que possa
realizar a prova G2. a = input("Digite sua nota: ") if nota >=7.0: print ("Você está aprovado por média.") if nota>9.0: # IF ANINHADO print ("Parabéns!") # se nota > 9 print ("Boas Ferias!") # se nota >=7 else: if nota>=4: # IF ANINHADO print ("Você pode fazer G2."); print ("Venha na próxima semana") else: print ("Você está reprovado!") print ("Você não pode fazer G2.") print ("Acabou.") Comando ELIF Quando for necessário fazer um novo teste após um ELSE, como no exemplo anterior, é possível simplificar o comando usando um ELIF. O trecho apresentado a seguir classifica uma pessoa de acordo com a regra descrita tabela.
a = input("Digite a idade da pessoa: ") if idade <=1: print ("Recém nascido") else: if idade < 13: print ("Criança") else: if idade < 18: print ("Adolescente") else: if idade < 60: print ("Adulto") else: if idade < 80: print ("Idoso") else: print ("Longevo") print ("Acabou.") Para evitar o deslocamento excessivo de blocos à direita, como ocorre neste exemplo, é possível usar o comando ELIF, como so exemplo a seguir. Note que todos os ELIFs ficam alinhados com o primeiro IF. O ELSE que aparce no final, é executado caso nenhuma das condições anterior seja verdadeiras. a = input("Digite a idade da pessoa: ") if idade <=1: print ("Recém nascido") elif idade < 13: print ("Criança") elif idade < 18: print ("Adolescente") elif idade < 60: print ("Adulto") elif idade < 80: print ("Idoso") else: print ("Longevo") print ("Acabou.") FIM |