Skip to content

Commit f5b85d3

Browse files
authored
Merge pull request #304 from Otoru/operadores_ternarios_no_python
operadores ternários (ou expressões condicionais) por @Otoru
2 parents 8f5e84f + ba9d617 commit f5b85d3

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

content/operadores_ternarios.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
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

Comments
 (0)