programa
Guia de operadores ternários do Python: Aumentando a eficiência do código
As habilidades em Python são essenciais para trabalhar com dados, quer você esteja analisando conjuntos de dados ou criando modelos complexos. Um bom código Python é fácil de entender e trabalhar, mas as coisas podem ficar confusas quando você adiciona condições. É nesse ponto que os operadores ternários são úteis.
Os operadores ternários são como um atalho que ajuda a manter seu código organizado e claro.
Neste artigo, abordaremos os detalhes dos operadores ternários, fornecendo exemplos para ilustrar como você pode usá-los em seu código. Além disso, discutiremos os prós e os contras do uso de operadores ternários.
O que são operadores ternários em Python?
A palavra "ternário" significa "composto de três partes". O operador ternário recebeu esse nome porque envolve três operandos:
- Uma condição
- Uma expressão a ser executada se a condição for verdadeira
- Outra expressão a ser executada se a condição for falsa.
Na literatura de programação, você pode encontrar operadores ternários com nomes diferentes: Operador condicional, Ternary If e Inline If (IIF).
Os operadores ternários não são exclusivos do Python. Linguagens como Java, JavaScript e C também têm suas versões. Embora possam diferir um pouco na sintaxe, todos compartilham a mesma funcionalidade básica. Vamos explicar usando um exemplo simples.
Imagine que você tenha que tomar uma decisão, como ir à praia ou ficar em casa. Você pode basear essa decisão no clima. Se o dia estiver ensolarado, você irá à praia, mas se estiver chovendo, você ficará em casa. Em uma condição if-else, seria assim:
if weather=="sunny": print("Go to the beach")else: print("Stay home")
Agora, vamos traduzir esse processo de tomada de decisão em uma operação ternária:
Se estiver ensolarado, você irá à praia (x), caso contrário (else), você ficará em casa (y).
Portanto, em Ternary Python, você teria a seguinte aparência:
Ambos os casos estão corretos. Qual deles você acha que será o mais legal dentro do código Python?
A sintaxe básica dos operadores ternários do Python
Vamos nos aprofundar agora e explorar os operadores ternários em detalhes. A forma geral dos operadores ternários do Python é a seguinte:
Condição
A condição em um operador ternário Python pode ser qualquer expressão que seja avaliada como um valor booleano (True ou False). Essa expressão pode envolver comparações ou operadores relacionais (<,>,==,!=), operadores lógicos (operações Logical AND, Logical OR e Logical NOT), chamadas de função ou qualquer outra operação que resulte em um valor booleano.
Por exemplo, a condição poderia ser:
- Uma comparação simples: x < 100
- Uma combinação de comparações: x < 10 e y > 25
- Uma chamada de função: is_numer(value)
- Uma expressão lógica: x > 0 ou y < 0
A chave é que a condição deve ser avaliada como True (verdadeira) ou False (falsa), dependendo da lógica que você deseja implementar. O resultado do operador ternário será baseado no fato de essa condição ser avaliada como verdadeira ou falsa.
result_if_true
Essa parte do operador ternário é geralmente chamada de "resultado se verdadeiro" ou "valor se verdadeiro". Representa a ação ou o valor que deve ser tomado ou atribuído quando a condição fornecida for avaliada como verdadeira.
- Uma variável: x
- Um valor constante: 10
- Uma chamada de função: calculate_value()
- Uma expressão aritmética: x-1, x * 2
- Qualquer outra expressão Python válida que produza um valor
A parte result_if_true permite que você especifique o resultado ou o valor que deseja quando a condição for atendida ou avaliada como True.
result_if_False
Semelhante à parte "result if true" (resultado se verdadeiro), a parte "result if false" (resultado se falso) pode ser qualquer expressão ou valor Python válido, como:
- Uma variável: y
- Um valor constante: 0
- Uma chamada de função: get_value()
- Uma expressão aritmética: y + 2
- Qualquer outra expressão Python válida que produza um valor
Essa flexibilidade permite que você especifique resultados ou valores diferentes com base no cumprimento da condição.
Na seção a seguir, analisarei exemplos que abrangem a maioria das combinações de condições, result_if_True e result_if_False.
Como usar os operadores ternários do Python
Os operadores ternários oferecem uma maneira concisa de expressar a lógica condicional não apenas em instruções if-else simples, mas também em outras construções do Python, como tuplas e dicionários.
Operadores ternários em instruções if-else
Para operadores ternários, certifique-se de que a condição seja avaliada como True (verdadeira) ou False (falsa). Os exemplos a seguir mostram como os operadores ternários podem lidar com diferentes tipos de dados de uma só vez em suas três partes. Essa flexibilidade os torna úteis para combinar vários tipos de informações em uma única expressão.
Condição: comparação, Resultado se Verdadeiro: variável, Resultado se Falso: variável
#the result will be x if x is less than y otherwise it will be yx = 3y = 5result = x if x < y else y
Condição: associação, Resultado se Verdadeiro: constante, Resultado se Falso: constante
# the result will be “Element is present” if the element exists in my_list otherwise it will be "Element is not present"my_list = [1, 2, 3, 4, 5]element = 6result = "Element is present" if element in my_list else "Element is not present"
Condição: lógica, Resultado se Verdadeiro: constante, Resultado se Falso: constante
# the result will be “Even” if the mod of X is 0 otherwise the result will be “Odd”x = 5result = "Even" if x % 2 == 0 else "Odd"
Condição: lógica, Resultado se verdadeiro: aritmético, Resultado se falso: aritmético
# if x is less than y the results will be the sum of x and y otherwise the result will be the subtraction. x = 5y = 7result = x + y if x < y else x - y
Condição: lógica, Resultado se Verdadeiro: variável, Resultado se Falso: função
# in case x is not None value, the result is x otherwise it is the output of the get_defult values function, which is “Default”def get_default_value(): return "Default"x = Noneresult = x if x is not None else get_default_value()
Condição: Função, resultado se for verdadeiro: Expressão aritmética, resultado se falso: Função
# If the customer_type is not "Regular”, the get_discount function will be called with customer_type as an argument; otherwise, the discount will be set to 0.def get_discount(customer): return 10 if customer == "VIP" else 5customer_type = "Regular"discount = get_discount(customer_type) if customer_type != "Regular" else 0
Condição: lógica, resultado se for verdadeiro: Função, Resultado se for Falso: Função
# in case a is less than b print the value “a is greater” otherwise print “b is greater”a=100b=200print(a,"is greater") if (a>b) else print(b,"is greater")
Operadores ternários aninhados
O operador ternário aninhado em Python permite que você combine várias expressões condicionais em um único operador ternário. Isso pode ser particularmente útil quando você precisa avaliar várias condições e retornar resultados diferentes com base em cada condição.
Vamos considerar um exemplo em que queremos determinar a categoria de um determinado número com base em seu valor:
num = 15size= "Small" if num < 4 else ("Medium" if num < 10 else "Large")
Neste exemplo:
- O operador ternário externo verifica se o número é menor que 4. Se for, ele atribui a categoria "Pequeno".
- Se o número não for menor que 10, o operador ternário interno verificará se o número é menor que 10. Se for, ele atribui a categoria "Médio"
- Se nenhuma das condições for atendida, a categoria "Grande" será atribuída.
Operadores ternários usando tuplas
Os operadores ternários podem ser usados em tuplas para selecionar valores com base em uma condição. Por exemplo:
value = (x if condition else y)
No entanto, existe uma maneira mais sofisticada de aplicar operadores ternários a tuplas. Esse método aproveita os recursos de indexação das tuplas para realizar operações condicionais. Quando combinados com tuplas, sequências imutáveis de elementos, os operadores ternários permitem expressões condicionais compactas e legíveis.
No contexto das tuplas, o operador ternário seleciona um dos dois valores com base em uma condição e o retorna. Isso é feito indexando a tupla usando o resultado da condição como índice. Se a condição for True, em Python True =1, o elemento no índice 1 (correspondente a result_if_true) será retornado; caso contrário, o elemento no índice 0 (correspondente a result_if_false) será retornado.
Essa abordagem pode ajudar a realizar atribuições ou avaliações condicionais simples dentro de expressões. No entanto, certifique-se de que o código permaneça legível e compreensível.
Exemplo:
a, b = 1, 5print((a, b)[a < b])
- ( a,b): Isso cria uma tupla ( a,b) com dois elementos, em que a é o primeiro elemento e b é o segundo elemento. No Python, a indexação começa a partir de 0. Portanto, a tem um índice 0 e b tem um índice 1.
- [a < b]: Essa é uma operação de indexação. Se a for menor que b, ele será avaliado como True, equivalente a 1 em Python. Se a não for menor que b, ele será avaliado como False, equivalente a 0 em Python.
- Portanto, essa operação de indexação seleciona efetivamente o primeiro ou o segundo elemento da tupla com base no resultado da comparação a < b.
- Como a é 1 e b é 5, a < b é avaliado como True, o que significa 1. Portanto, a expressão b é selecionada e 5 é impresso.
Operadores ternários usando dicionários
O conceito de utilização de indexação, como visto com as tuplas, também pode ser estendido aos dicionários. Entretanto, ao contrário das tuplas, os dicionários não têm um índice tradicional em Python. Em vez disso, os dicionários usam suas chaves para acessar e recuperar valores.
As chaves de dicionário têm uma finalidade semelhante à dos índices, permitindo a recuperação eficiente de valores associados a chaves específicas. As chaves do dicionário são semelhantes às tuplas, pois ambas são imutáveis, o que significa que não podem ser alteradas internamente sem alterar a identidade do dicionário.
a, b = 1, 5result= {True: a, False: b} [a < b]
- Esse código é uma expressão de dicionário combinada com pesquisa de valor-chave.
- {True: a, False: b}: Isso cria um dicionário com dois pares de valores-chave.
- Se a condição [a < b] for True, você associará a chave True ao valor a e, se a condição for False, você associará a chave False ao valor b.
Vantagens e desvantagens dos operadores ternários do Python
Os operadores ternários têm seus altos e baixos, assim como qualquer ferramenta. É essencial que você conheça os dois lados para encontrar o equilíbrio certo e usá-los de forma eficaz.
Primeiro, vamos explorar as vantagens de usar os operadores ternários do Python:
- O código será curto e claro.
- O código será mais fácil de ler e entender porque é mais conciso.
- Eles são convenientes quando você precisa atribuir valores com base em determinadas condições.
- Além de o código parecer mais limpo, ele também pode ser executado mais rapidamente, pois não precisa verificar tantas opções.
As desvantagens de usar os operadores ternários do Python são as seguintes:
- Os operadores ternários podem não ser ideais para cenários que exigem várias condições.
- Operadores ternários complexos e aninhados podem gerar confusão e erros.
- O uso excessivo de operadores ternários no código pode resultar em um código excessivamente complexo que é difícil de entender e manter.
- O fluxo lógico dos códigos que contêm operadores ternários complexos pode não ser claro, o que torna a depuração do código extremamente desafiadora e a identificação e correção de erros mais difícil.
Práticas recomendadas de operadores ternários
É claro que, como acontece com qualquer ferramenta, há desafios que você enfrentará ao trabalhar com elas. Tenha em mente essas práticas recomendadas ao usá-las em seu código:
- Use-os com sabedoria: Condições complexas em operadores ternários podem dificultar a leitura do código. Se necessário, divida-os em instruções if-else.
- Você não deve se aprofundar demais: O aninhamento de muitos operadores ternários cria uma bagunça emaranhada. Mantenha as coisas simples e fáceis de seguir.
- Faça um teste completo: Certifique-se de que seu código com operadores ternários funcione conforme o esperado em diferentes cenários.
- Explique sua lógica: Adicione comentários para explicar o que o operador ternário está fazendo para melhorar a manutenção do código.
- Seja consistente: Use operadores ternários da mesma forma em todo o código para que você tenha um estilo limpo e legível.
- Manipular erros: Crie maneiras de lidar com situações inesperadas ao usar operadores ternários.
Desenvolva suas habilidades em Python
Os operadores ternários do Python são gemas no Python. Eles permitem que você escreva códigos otimizados e eficientes, condensando a lógica condicional complexa em uma única linha elegante.
A adoção de operadores ternários não apenas melhora a legibilidade do código, mas também reflete uma compreensão mais profunda da sintaxe expressiva do Python. À medida que você continua sua jornada no Python, aproveitar essa forma compacta de expressão condicional, sem dúvida, aprimorará suas habilidades de codificação e levará a scripts mais refinados e polidos.
Aqui estão alguns links para ajudar você a desenvolver suas habilidades em Python e subir a escada da programação em Python, um passo de cada vez.
Perguntas frequentes
O que é um operador ternário em Python?
Um operador ternário é uma expressão condicional que avalia uma condição e retorna um de dois valores com base no fato de a condição ser verdadeira ou falsa. A sintaxe de um operador ternário em Python é value_if_true if condition else value_if_false. Ele avalia a condição primeiro; se for verdadeira, ele retorna value_if_true; caso contrário, ele retorna value_if_false
Quais são as vantagens de usar operadores ternários?
Os operadores ternários tornam o código mais compacto e mais fácil de entender em um relance. Eles reduzem o número de linhas em seu código e melhoram a legibilidade para condições simples.
Quais são as desvantagens de usar operadores ternários?
Os operadores ternários podem melhorar a legibilidade do código para condições simples, mas podem dificultar a leitura do código para condições complexas ou operações aninhadas. O uso excessivo delas pode dificultar a compreensão do código.
Quando você deve evitar o uso de operadores ternários?
Evite usar operadores ternários para condições complexas ou quando a expressão se tornar difícil de entender. Se o código ficar menos legível, use as instruções if-else tradicionais.

Um cientista/analista de dados versátil, que combina experiência em análise quantitativa com tecnologia de ponta. Com Ph.D. em Geofísica e pós-graduação em Inteligência Artificial e Ciência de Dados, Rayan utiliza suas sólidas habilidades de resolução de problemas para extrair insights práticos de conjuntos de dados complexos. As contribuições de pesquisa de Rayan abrangem vários domínios, demonstrando sua capacidade de aplicar técnicas avançadas para enfrentar desafios do mundo real.
Continue sua jornada de aprendizado de Python hoje mesmo!
curso
Como escrever um código Python eficiente
curso
Aprendizado não supervisionado em Python

blog
6 práticas recomendadas de Python para um código melhor

blog
5 desafios Python para desenvolver suas habilidades

DataCamp Team
5 min
tutorial
Operadores em Python
tutorial
Declarações IF, ELIF e ELSE do Python
tutorial
Tutorial de lambda em Python

DataCamp Team
3 min
tutorial
Operador da morsa do Python: A expressão de atribuição (Tutorial)

Stephen Gruppetta
8 min