|
| 1 | +Title: Trabalhando com operadores ternários |
| 2 | +Date: 2018-10-06 09:21 |
| 3 | +Tags: Python, tutorial, operadores ternários |
| 4 | +Category: Geral |
| 5 | +Slug: trabalhando-com-operadores-ternarios |
| 6 | +Author: Vitor Hugo de Oliveira Vargas |
| 7 | +About_author: Eterno estudante e fã da cultura DevOps |
| 8 | +Email: vitor.hov@gmail.com |
| 9 | +Github: otoru |
| 10 | +Twitter: vitor_hov |
| 11 | +Facebook: Ovitorugo |
| 12 | +Linkedin: vitor-hov |
| 13 | + |
| 14 | +Quando estamos escrevendo um código qualquer, possivelmente |
| 15 | +a expressão que mais utilizamos é o `if`. Para qualquer |
| 16 | +tarefas que buscamos automatizar ou problemas que buscamos |
| 17 | +resolver, sempre acabamos caindo em lógicas como "Se isso |
| 18 | +acontecer, então faça aquilo, senão faça aquele outro...". |
| 19 | + |
| 20 | +Quando estamos falando de ações a serem executadas, pessoalmente |
| 21 | +gosto da forma com que o código fica organizado em python quando |
| 22 | +usamos este tipo de condições, por exemplo: |
| 23 | + |
| 24 | + :::python |
| 25 | + |
| 26 | + if vencer_o_thanos: |
| 27 | + restaurar_a_paz() |
| 28 | + |
| 29 | + else: |
| 30 | + foo() |
| 31 | + |
| 32 | +Graças a indentação e ao espaçamento, vemos onde onde começa e/ou |
| 33 | +termina o bloco executado caso a varável `vencer_o_thanos` seja |
| 34 | +`True`. Quanto mais `if`'s você aninhar, mais bonito seu |
| 35 | +código fica e em momento algum o mesmo se torna mais confuso |
| 36 | +(ao menos, não deveria se tornar). Entretanto, sempre fico |
| 37 | +extremamente incomodado quando tenho de escrever um bloco apenas |
| 38 | +marcar uma variável, como por exemplo: |
| 39 | + |
| 40 | + :::python |
| 41 | + |
| 42 | + if vencer_o_thanos: |
| 43 | + paz = True |
| 44 | + |
| 45 | + else: |
| 46 | + paz = False |
| 47 | + |
| 48 | +Por isso, para trabalhar com variáveis que possuem um valor condicional, |
| 49 | +gosto sempre de trabalhar com expressões condicionais, ou como costumam |
| 50 | +ser chamadas, **operadores ternários**. |
| 51 | + |
| 52 | +Operadores ternários são todos os operadores que podem receber três |
| 53 | +operandos. Como as expressões condicionais costumam ser os operadores |
| 54 | +ternários mais populares nas linguagens em que aparecem, acabamos por |
| 55 | +associar estes nomes e considerar que são a mesma coisa. Cuidado ao tirar |
| 56 | +este tipo de conclusão, mesmo que toda vogal esteja no alfabeto, o |
| 57 | +alfabeto não é composto apenas por vogais. |
| 58 | + |
| 59 | +A estrutura de uma expressão condicional é algo bem simples, veja só: |
| 60 | + |
| 61 | + :::python |
| 62 | + |
| 63 | + paz = True if vencer_o_thanos else False |
| 64 | + tipo_de_x = "Par" if x % 2 == 0 else "impar" |
| 65 | + |
| 66 | +Resumidamente, teremos **um valor seguido de uma condição e por fim seu |
| 67 | +valor caso a condição seja falsa**. Pessoalmente acredito que apesar de um |
| 68 | +pouco diferente, essa forma de escrita para casos como o exemplificado acima |
| 69 | +é muito mais clara, mais explicita. |
| 70 | + |
| 71 | +Se você fizer uma tradução literal das booleanas utilizadas no primeiro exemplo, |
| 72 | +lerá algo como `paz é verdadeira caso vencer_o_thanos, caso contrário é Falsa.` |
| 73 | +já o segundo exemplo fica mais claro ainda, pois lemos algo como |
| 74 | +`tipo_de_x é par caso o resto da divisão de x por 2 seja 0, se não, tipo_de_x é impar.`. |
| 75 | + |
| 76 | +Interpretar código dessa forma pode ser estranho para um programador. Interpretar |
| 77 | +uma abertura de chave ou uma indentação já é algo mas natural. Todavia, para aqueles |
| 78 | +que estão começando, o raciocínio ocorre de forma muito mais parecida com a descrita |
| 79 | +acima. Espero que tenham gostado do texto e que esse conhecimento lhes seja útil. |
0 commit comments