Colunas calculadas no SharePoint | Uma visão geral
Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.
No mundo da programação, ter a capacidade de simplificar o código é valioso tanto para a legibilidade quanto para a eficiência do código. Uma ferramenta à sua disposição para fazer isso em Python é o operador ternário.
O operador ternário do Python (ou expressão condicional) permite que você avalie declarações com base em uma determinada condição ser verdadeira ou falsa, tudo em uma única linha de código. Ele pode efetivamente substituir uma instrução if-else de várias linhas, tornando seu código mais compacto.
À medida que exploramos o potencial dos operadores ternários do Python , você descobrirá que eles podem ser muito úteis para otimizar seus programas. Seja para simplificar a lógica de tomada de decisão ou otimizar seu código, o uso eficaz de operadores ternários do Python pode tornar seu código muito mais fácil de ler e entender.
Então, vamos dar uma olhada sob o capô e ver do que se trata!
Índice
O que é um operador ternário do Python?
Os operadores ternários do Python oferecem uma maneira concisa de avaliar uma instrução com base em uma condição verdadeira ou falsa, tornando seu código compacto e fácil de ler. Algumas pessoas também os chamam de expressões condicionais ou operadores condicionais.
Sintaxe Básica
O operador ternário foi introduzido no Python 2.5 e possui uma estrutura simples composta por três operandos:
#demonstrate python ternary operator syntax
result = value_if_true if condition else value_if_false
Esta sintaxe consiste em três partes principais:
A condição : Esta é uma expressão booleana avaliada como verdadeira ou falsa, uma
value_if_true : o valor que será retornado se a expressão booleana for verdadeira.
value_if_false : o valor que é retornado se a expressão booleana for falsa.
Casos de uso comuns
Operadores ternários ou expressões condicionais são frequentemente usados para simplificar instruções if-else curtas em seu código. Aqui estão alguns exemplos para ilustrar como você pode aplicar um operador ternário do Python:
Exemplo 1: atribuir um valor com base em uma condição
age = 25
category = "adult" if age >= 18 else "minor"
Neste exemplo, o operador ternário do Python atribui o valor “ adulto ” à variável categoria se a idade for maior ou igual a 18 anos, e “ menor ” caso contrário.
Supondo que optamos por usar uma instrução if-else em vez de um operador ternário do Python, seria mais ou menos assim:
age = 25
if age > 18:
category = "Adult"
else:
category = "Minor"
Nesse caso, podemos ver que usar um operador ternário torna o código muito mais compacto e fácil de ler.
Exemplo 2: Selecionando o menor de dois números
a = 10
b = 15
smallest = a if a < b else b
Aqui, o operador condicional ternário ajuda a determinar o menor de dois números retornando o menor valor entre a e b.
Exemplo 3: Atribuindo o valor mínimo de duas variáveis:
num1 = 10
num2 = 20
min_num = num1 if num1 < num2 else num2
print(min_num)
A saída para este exemplo será 10, pois o operador ternário avalia a condição e retorna o menor valor.
Exemplo 4: Descobrir se um número é par ou ímpar:
num = 5
result = "Even" if num % 2 == 0 else "Odd"
print(result)
A saída para este exemplo será Odd , pois a condição é avaliada como False , e o operador ternário retorna o resultado apropriado.
Esses exemplos demonstram como um operador ternário do Python pode tornar seu código mais conciso e fácil de ler. Usando a sintaxe básica e compreendendo os casos de uso comuns, você pode incorporar efetivamente um operador ternário em seu código Python.
Em aplicações mais práticas, você pode usá-lo em conjunto com um loop para verificar, avaliar ou executar operações nos dados.
Para uma manipulação de dados mais eficiente, você pode conferir este vídeo em Como lidar com dados ausentes em Python com interpolação.
Como usar o operador ternário do Python
A sintaxe if-else do operador ternário normal é apenas uma das muitas maneiras pelas quais podemos implementar um operador ternário do Python. Também podemos implementá-lo usando estruturas de dados comuns, como dicionários, tuplas e listas do Python.
Vejamos alguns desses métodos:
Mapeamento de Dicionário
Você pode emular um operador ternário Python com mapeamento de dicionário para armazenar os resultados para diferentes condições. Pode ser útil quando você tem um conjunto finito de condições e resultados correspondentes.
Aqui está um exemplo usando o mapeamento de dicionário para verificar se um número é par ou ímpar:
#Implement python ternary operator with dictionary mapping
number = 7
result = {True: "Even", False: "Odd"}
is_even = result[number % 2 == 0]
O programa acima retornará “ Odd ” já que a expressão booleana entre colchetes é avaliada como False.
Usando tuplas
As tuplas do Python são uma estrutura de dados ordenada e imutável que você pode usar para implementar operadores ternários. Basicamente, o operador ternário tupla tem uma sintaxe de:
(condition_is_false, condition_is_true)[condition]
A condição é avaliada como True ou False , que em Python são iguais aos inteiros 1 e o, respectivamente.
Portanto, a tupla retorna qualquer elemento que corresponda ao índice resultante. Por exemplo, se a condição for avaliada como True , que é 1 , o código retorna condition_is true .
Caso contrário, ele avalia como False , que é 0, e a tupla retorna condition_is_false . Segue um exemplo abaixo:
#Implement ternary operator with tuples
c = False
result = ('a', 'b')[c]
A tupla irá armazenar o valor ' a ' na variável result desde que a condição seja avaliada como False. A maioria dos desenvolvedores não gosta de usar esse formato para operadores ternários, pois pode ser um pouco confuso, o que anula o propósito.
Funções Lambda
As funções Lambda são funções anônimas de linha única que você pode usar como alternativa aos operadores ternários. Eles permitem que você execute cálculos simples e retorne um resultado com base em uma determinada condição.
Aqui está um exemplo de uso de uma função lambda para encontrar o máximo de dois números:
#implement python ternary operator with lambda functions
a, b = 10, 20
max_value = (lambda: a, lambda: b)[a < b]()
A função lambda retorna a se a condição for avaliada como True . Caso contrário, retorna b .
O que é um operador ternário aninhado?
Um operador ternário aninhado é uma expressão condicional com duas ou mais expressões booleanas. Você pode criar isso encadeando duas ou mais condições booleanas para verificar várias condições.
Podemos usar esses tipos de operadores ternários para modelar instruções “ elif ” e blocos if-else aninhados.
Vejamos um exemplo de um operador ternário Python aninhado.
age = 21
#Normal elif statement
if age< 21:
print('Child')
elif age< 25:
print ('young adult')
else:
print('Adult')
#elif statement as a ternary operator
print('Child') if age < 18 else print('Young adult') if age <21 else print ('Old Person')
#Output: 'Young Adult'
Você pode adicionar colchetes ao operador ternário do Python se quiser imitar uma instrução if-else aninhada. No entanto, esta não é uma boa prática, pois o operador ternário pode se tornar muito longo e ilegível.
Em casos como esse, é melhor usar um bloco if-else padrão em seu código.
Quais são as vantagens do operador ternário do Python?
Você obtém muitas vantagens ao usar o operador ternário do Python em seu código. Algumas dessas vantagens incluem:
Legibilidade e brevidade do código
Usar o operador ternário do Python pode tornar seu código mais conciso, permitindo que você escreva expressões condicionais em uma única linha.
Isso é especialmente útil ao lidar com condições simples e diretas. Seu código pode ser mais legível e fácil de entender, pois reduz a necessidade de várias linhas de instruções if-else.
Considerações de desempenho
Embora o operador ternário possa levar a um código mais compacto, seu impacto no desempenho geralmente é mínimo. O interpretador do Python é projetado para otimizar a execução do código, o que significa que tanto o operador ternário quanto as instruções if-else geralmente têm características de desempenho semelhantes.
Ao escrever código Python , priorize a legibilidade e a capacidade de manutenção em detrimento do desempenho, a menos que você esteja trabalhando com aplicativos de desempenho crítico.
Lembre-se de que situações diferentes exigem abordagens diferentes. Às vezes, usar o operador ternário é benéfico, enquanto em outros casos, manter as instruções if-else tradicionais pode ser mais adequado.
Desvantagens do Operador Ternário do Python
Os operadores ternários são ótimos para simplificar seu código e torná-lo compacto. No entanto, usá-los pode ter algumas desvantagens.
Aqui estão algumas dessas desvantagens:
Operadores Ternários Aninhados Podem Ficar Complexos
Em alguns casos, o operador ternário pode tornar o código menos legível, principalmente ao usar condições complexas ou aninhadas. Nessas situações, incorporar instruções if-else convencionais pode ser mais apropriado para manter a clareza do código.
Isso é especialmente verdadeiro quando você está tentando substituir uma instrução if-else aninhada por um operador ternário. Raramente resulta em código limpo.
Cada Operando é uma Expressão
Todos os operandos ou valores de retorno em um operador ternário do Python são expressões, não instruções. Tentar usar uma instrução de atribuição dentro da sintaxe do operador ternário levará a um erro de sintaxe.
Você pode conferir um exemplo disso no código abaixo.
'Adult' if True else x = 44
Como você pode ver abaixo, isso resulta em um erro de sintaxe. Em casos como esse, você deve usar um bloco if-else em vez de um operador condicional.
Melhores práticas e dicas
Ao usar o operador ternário em Python, existem algumas práticas recomendadas e dicas para ajudá-lo a escrever um código limpo, eficiente e legível.
Em primeiro lugar, certifique-se de que sua expressão condicional seja curta e concisa. Condições longas e complexas podem dificultar a compreensão da lógica por trás do operador ternário.
Se você se deparar com uma condição complexa, talvez seja melhor usar uma instrução if-else regular.
#demonstrate nested ternary operator
# Good example
result = "positive" if number >= 0 else "negative"
# Bad example
result = (a + b if (x > 10 and y > 20) else c + d) if (z > 30 and p > 40) else ...
Em segundo lugar, evite aninhar vários operadores ternários, o que pode levar a um código confuso e ilegível. Assim como em condições complexas, considere usar uma instrução if-else para facilitar a leitura.
# Good example
x = A if condition1 else B if condition2 else C
# Bad example
x = A if condition1 else (B if condition2 else (C if condition3 else ...))
Por fim, esteja atento aos casos de uso apropriados para o operador ternário. É mais adequado para atribuições simples de linha única, em que a condição e o resultado são fáceis de entender.
Se o seu código envolve lógica mais complexa, loops ou atribuições múltiplas, é melhor se ater às instruções if-else tradicionais.
Perguntas frequentes sobre operadores ternários do Python
Aqui estão algumas perguntas que os novos programadores geralmente nos fazem sobre operadores ternários:
Como você usa o operador ternário em uma instrução de retorno em Python?
Você pode usar um operador ternário do Python na instrução de retorno de uma função. Tudo o que você precisa fazer é adicioná-lo à instrução return.
Aqui está um exemplo:
#program to check cheese age
def is_legal(age):
return 'legal' if age > 18 else 'Not legal'
Um operador ternário é mais rápido que uma instrução if-else em Python?
Não, ambos têm características de desempenho semelhantes. Um operador ternário e uma instrução if-else têm uma complexidade de tempo O(1).
Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.
Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates
Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.
Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.
Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.
Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.
Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.
O que é self em Python: exemplos do mundo real
Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.
Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.