Pular para o conteúdo principal

Guia de operadores ternários do Python: Aumentando a eficiência do código

Aprenda a aprimorar suas habilidades de codificação em Python usando operadores ternários para produzir códigos mais eficientes e legíveis. Além disso, descubra dicas para simplificar suas declarações condicionais.
Actualizado 15 de jan. de 2025  · 11 min de leitura

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

Operadores ternários em 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.


Rayan Yassminh's photo
Author
Rayan Yassminh
LinkedIn
Twitter

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.

Temas

Continue sua jornada de aprendizado de Python hoje mesmo!

programa

Programação Python

19 horas hr
Aumente o nível de suas habilidades de programação. Você aprenderá a otimizar o código, escrever funções e testes e usar as melhores práticas de engenharia de software.
Ver DetalhesRight Arrow
Iniciar curso
Certificação disponível

curso

Como escrever um código Python eficiente

4 hr
127.6K
Aprenda a escrever código eficiente que seja executado rapidamente e aloque recursos com habilidade para evitar sobrecarga desnecessária.
Ver maisRight Arrow
Relacionado
Data Skills

blog

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

Descubra as práticas recomendadas de codificação Python para escrever os melhores scripts Python da categoria.
Javier Canales Luna's photo

Javier Canales Luna

13 min

5 Python Challenges

blog

5 desafios Python para desenvolver suas habilidades

Aumente o nível de suas habilidades em Python com estes cinco desafios de codificação em Python. Faça um teste para ver se você consegue completar um em uma semana!
DataCamp Team's photo

DataCamp Team

5 min

tutorial

Operadores em Python

Este tutorial aborda os diferentes tipos de operadores em Python, sobrecarga de operadores, precedência e associatividade.
Théo Vanderheyden's photo

Théo Vanderheyden

9 min

tutorial

Declarações IF, ELIF e ELSE do Python

Neste tutorial, você aprenderá exclusivamente sobre as instruções if else do Python.
Sejal Jaiswal's photo

Sejal Jaiswal

9 min

tutorial

Tutorial de lambda em Python

Aprenda uma maneira mais rápida de escrever funções em tempo real com as funções lambda.
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Operador da morsa do Python: A expressão de atribuição (Tutorial)

O operador de morsa do Python := permite que você atribua um valor a uma variável dentro de uma expressão, combinando atribuição e uso em uma única etapa.
Stephen Gruppetta's photo

Stephen Gruppetta

8 min

Ver maisVer mais