single
Precedência de Operadores em Python
Deslize para mostrar o menu
Ao desenvolver uma aplicação em Python, é importante compreender como o Python lida com a precedência de operadores, que determina a ordem em que as operações são realizadas nas expressões. Isso garante que as condições sejam avaliadas corretamente. O uso de parênteses também pode ajudar a esclarecer e controlar a ordem das operações.
Precedência dos Operadores Lógicos
Entre os operadores lógicos, o Python segue esta precedência:
Exemplo: Metas de um Rastreador de Atividades Físicas
Vamos esclarecer com exemplos no contexto de um Rastreador de Atividades Físicas:
12345678910111213141516171819# Example 1: AND has higher precedence than OR steps_taken = 8000 step_goal = 10000 calories_burned = 450 calorie_goal = 500 first_result = steps_taken >= step_goal or calories_burned >= calorie_goal and False # Same as: steps_taken >= step_goal or (calories_burned >= calorie_goal and False) # Example 2: Parentheses change the precedence second_result = (steps_taken >= step_goal or calories_burned >= calorie_goal) and True # Example 3: NOT has the highest precedence third_result = not (steps_taken >= step_goal) or calories_burned >= calorie_goal # Same as: (not (steps_taken >= step_goal)) or (calories_burned >= calorie_goal) print('The first expression is:', first_result) print('The second expression is:', second_result) print('The third expression is:', third_result)
Primeiro Resultado:
- Python avalia
andprimeiro: (calories_burned >= calorie_goal and False, que é o mesmo que FalseandFalse) resulta emFalse; - Depois,
oré aplicado:steps_taken >= step_goal or Falsese tornaFalse or False, resultando emFalse.
Segundo Resultado:
- Os parênteses forçam o Python a avaliar
steps_taken >= step_goal or calories_burned >= calorie_goalprimeiro. Como ambossteps_taken >= step_goalecalories_burned >= calorie_goalsãoFalse, o resultado dos parênteses éFalse; - Em seguida,
False and Falseé avaliado, resultando emFalse.
Terceiro Resultado:
nottem a maior precedência, entãonot (steps_taken >= step_goal)é avaliado primeiro. Comosteps_taken >= step_goaléFalse,not Falsese tornaTrue;- Depois,
calories_burned >= calorie_goalé avaliado, que éFalse; - Por fim,
True or Falseresulta emTrue.
Assim como os operadores lógicos, outros operadores como operadores de comparação (>=, <=, ==, etc.) e operadores matemáticos (+, -, *, /, etc.) também seguem uma ordem específica de precedência.
Por exemplo:
- Operadores matemáticos como
*e/têm precedência maior que+e-; - Operadores de comparação (
<,>,==, etc.) são avaliados após as operações matemáticas; - Operadores lógicos (
not,and,or) são avaliados por último.
O uso de parênteses ( ) pode ajudar a esclarecer e controlar a ordem de avaliação nas suas expressões.
Deslize para começar a programar
No código atual do Fitness Tracker, múltiplos comandos if aninhados tornam a lógica mais difícil de ler e manter. Sua tarefa é reescrever o código utilizando um único e conciso comando if com operadores lógicos. Use o operador lógico and para combinar várias condições.
As metas de condicionamento físico devem ser acompanhadas de forma eficiente, assim como seu código! A implementação atual verifica se:
- O usuário não atingiu a meta de passos.
- O usuário não queimou calorias suficientes.
- O usuário não se exercitou pela manhã.
Reescreva o código para melhorar sua legibilidade mantendo a mesma lógica.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo