セクション 1. 章 5
single
Pythonにおける演算子の優先順位
メニューを表示するにはスワイプしてください
Pythonアプリケーションを開発する際には、Pythonが演算子の優先順位をどのように扱うかを理解することが重要です。演算子の優先順位は、式内で演算が実行される順序を決定し、条件が正しく評価されることを保証します。かっこを使用することで、演算の順序を明確にし、制御することもできます。
論理演算子の優先順位
論理演算子の中で、Pythonは次の優先順位に従います:
例:フィットネストラッカーの目標
フィットネストラッカーの文脈で例を使って説明します:
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)
コードの説明
最初の結果:
- Pythonはまず
andを評価する:(calories_burned >= calorie_goal and FalseはFalseandFalseと同じ)となり、Falseになる; - 次に
orが適用される:steps_taken >= step_goal or FalseはFalse or Falseとなり、結果はFalse。
2番目の結果:
- 括弧によってPythonは
steps_taken >= step_goal or calories_burned >= calorie_goalを先に評価する。両方ともsteps_taken >= step_goalとcalories_burned >= calorie_goalはFalseなので、括弧内の結果はFalse; - その後、
False and Falseが評価され、結果はFalse。
3番目の結果:
notは最も高い優先順位を持つため、not (steps_taken >= step_goal)が最初に評価される。steps_taken >= step_goalはFalseなので、not FalseはTrue;- 次に
calories_burned >= calorie_goalが評価され、これはFalse; - 最後に、
True or FalseはTrueとなる。
ノート
論理演算子と同様に、比較演算子(>=、<=、==など)や数学演算子(+、-、*、/など)も特定の優先順位に従う。
例:
*や/などの数学演算子は、+や-よりも優先順位が高い;- 比較演算子(
<、>、==など)は数学演算の後に評価される; - 論理演算子(
not、and、or)は最後に評価される。
括弧( )を使うことで、式の評価順序を明確にし、制御することができる。
タスク
スワイプしてコーディングを開始
現在のFitness Trackerコードでは、複数の入れ子になったif文がロジックを読みづらく、保守しにくくしています。あなたの課題は、論理演算子を使って、1つの簡潔なif文に書き換えることです。複数の条件を組み合わせるためにand論理演算子を使用してください。
フィットネス目標を効率的に追跡するのと同様に、コードも効率的であるべきです。現在の実装では、以下をチェックしています:
- ユーザーが歩数目標を達成していない。
- ユーザーが十分なカロリーを消費していない。
- ユーザーが朝に運動していない。
同じロジックを維持しつつ、可読性を向上させるようにコードを書き換えてください。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 5
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください