Melhores Práticas para Declarações Condicionais em Python
Este artigo explica as melhores práticas para declarações condicionais em Python.
YouTube Video
Melhores Práticas para Declarações Condicionais em Python
A instrução if no Python é uma construção fundamental para a implementação de ramificações condicionais, e impacta significativamente a legibilidade e a manutenção do código. Aqui, discutiremos em detalhes as melhores práticas para o uso de instruções if.
Use expressões condicionais explícitas
Escreva expressões condicionais de forma concisa e explícita, evitando declarações redundantes.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass- No Python, você pode indicar que uma condição é verdadeira escrevendo
if condition:.
Combinando várias condições
Ao combinar várias condições, use and ou or. No entanto, quando as expressões condicionais tornam-se complexas, a legibilidade pode diminuir, então considere os seguintes ajustes:.
1age = 15
2is_student = True
3
4### Bad Example
5# Complex condition
6if (age > 18 and age < 65) or (is_student and age > 15):
7 pass
8
9### Good Example
10# Improving readability
11is_working_age = 18 < age < 65
12is_eligible_student = is_student and age > 15
13
14if is_working_age or is_eligible_student:
15 pass- Dividindo as condições e atribuindo-as a variáveis, a legibilidade pode ser melhorada.
Avaliação de curto-circuito com and/or
Em expressões condicionais usando and ou or, se o resultado pode ser determinado apenas pelo valor da esquerda, ocorre uma avaliação de curto-circuito e o lado direito não é avaliado. Compreender isso ajuda a evitar processamentos desnecessários e prevenir erros.
1user = None
2def expensive_check():
3 return True
4
5# Example of short-circuiting with 'and'
6if user and user.is_active:
7 # If user is None, user.is_active will NOT be evaluated
8 print("Active user found.")
9
10# Example of short-circuiting with 'or'
11if user.is_admin or expensive_check(user):
12 # If user.is_admin is True, expensive_check will NOT be called.
13 print("Access granted.")
14else:
15 print("Access denied.")- Ao utilizar a avaliação de curto-circuito, você pode melhorar a eficiência e a segurança do processamento.
Precedência de and e or
and tem maior precedência do que or. Portanto, ao combinar condições de forma ingênua, você pode obter resultados inesperados. É importante usar parênteses para deixar suas intenções claras.
1age = 15
2is_student = True
3
4### Unclear example
5# This is interpreted as: age > 18 and (age < 65 or is_student)
6if age > 18 and age < 65 or is_student:
7 pass
8
9### Clear example
10# Explicit parentheses make the intended logic obvious
11if (age > 18 and age < 65) or is_student:
12 pass- Ao usar parênteses, você pode esclarecer a precedência de
andeor, reduzindo o risco de bugs inesperados.
Entenda Truthy e Falsy
No Python, os seguintes valores são avaliados como False:.
NenhumFalso- O número
0(incluindo0.0) - Tipos de sequências vazias (como listas, tuplas ou strings vazias)
- Exemplos:
[],(),""
- Exemplos:
- Dicionário vazio
- Exemplo:
{}
- Exemplo:
Aproveitar isso pode ajudar a simplificar suas expressões condicionais.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 passUso adequado de elif e else
Ao avaliar várias condições, use elif. Use else para definir um comportamento padrão no final.
1score = 80
2
3if score >= 90:
4 grade = "A"
5elif score >= 80:
6 grade = "B"
7elif score >= 70:
8 grade = "C"
9else:
10 grade = "F"elsenão é obrigatório. Se todas as condições forem atendidas, isso pode ser omitido.- Preste atenção à ordem das expressões condicionais e organize-as logicamente, sem redundância.
Limite a profundidade de aninhamento.
O aninhamento profundo de instruções if torna o código mais difícil de ler.
1def access_resource():
2 return True
3
4### Bad Example
5def deep_nest(user, resource):
6 if user.is_authenticated:
7 if user.has_permission:
8 if resource.is_available:
9 access_resource()
10
11### Good Example
12def early_return(user, resource):
13 if not user.is_authenticated:
14 return
15 if not user.has_permission:
16 return
17 if not resource.is_available:
18 return
19
20 access_resource()- O uso de retornos antecipados pode reduzir o aninhamento e tornar o código mais conciso.
Evite usar instruções if de uma única linha.
É possível escrever instruções if em uma única linha, mas isso pode reduzir a legibilidade.
1condition = False
2def do_something():
3 return True
4
5### Bad Example
6if condition: do_something()
7
8### Good Example
9if condition:
10 do_something()- O uso de instruções if de uma linha só é aceitável apenas para condições ou ações curtas, mas evite escrever um código excessivamente extenso.
Simplificando com o operador ternário ou or
Para ramificações condicionais simples, usar o operador ternário ou or pode tornar seu código mais conciso. No entanto, o uso excessivo desses recursos pode tornar seu código mais difícil de ler, portanto devem ser usados apenas para condições simples e intuitivas.
1is_admin = True
2input_name = None
3
4# Regular if statement
5if is_admin:
6 role = "Administrator"
7else:
8 role = "User"
9
10# Simplified using an inline if
11role = "Administrator" if is_admin else "User"
12
13# Use 'or' to provide a default value
14name = input_name or "Guest"- Para condições simples, o uso do operador ternário ou
orpode deixar seu código mais curto e fácil de entender.
Armazenamento em cache de expressões condicionais.
Expressões condicionais que envolvem cálculos caros ou chamadas de funções podem ser armazenadas em cache em variáveis para melhorar o desempenho.
1def expensive_function():
2 pass
3
4def another_expensive_function():
5 pass
6
7### Bad Example
8if expensive_function() and another_expensive_function():
9 pass
10
11### Good Example
12result1 = expensive_function()
13result2 = another_expensive_function()
14if result1 and result2:
15 passResumo
As instruções if do Python são ferramentas simples e poderosas, mas o uso inadequado pode tornar o código complexo e difícil de ler. Ao adotar as melhores práticas apresentadas aqui, você pode melhorar a legibilidade, a manutenção e a eficiência do seu código.
Você pode acompanhar o artigo acima usando o Visual Studio Code em nosso canal do YouTube. Por favor, confira também o canal do YouTube.