Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Pythonにおける演算子の優先順位 | Pythonのif文をマスターする
Pythonにおける制御フロー
セクション 1.  5
single

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)
コードの説明
expand arrow

最初の結果:

  • Pythonはまずandを評価する:(calories_burned >= calorie_goal and FalseFalse and Falseと同じ)となり、Falseになる;
  • 次にorが適用される: steps_taken >= step_goal or FalseFalse or Falseとなり、結果はFalse

2番目の結果:

  • 括弧によってPythonはsteps_taken >= step_goal or calories_burned >= calorie_goalを先に評価する。両方ともsteps_taken >= step_goalcalories_burned >= calorie_goalFalseなので、括弧内の結果はFalse
  • その後、False and Falseが評価され、結果はFalse

3番目の結果:

  • notは最も高い優先順位を持つため、not (steps_taken >= step_goal)が最初に評価される。steps_taken >= step_goalFalseなので、not FalseTrue
  • 次にcalories_burned >= calorie_goalが評価され、これはFalse
  • 最後に、True or FalseTrueとなる。
Note
ノート

論理演算子と同様に、比較演算子>=<===など)や数学演算子+-*/など)も特定の優先順位に従う。

例:

  1. */などの数学演算子は、+-よりも優先順位が高い;
  2. 比較演算子(<>==など)は数学演算の後に評価される;
  3. 論理演算子(notandor)は最後に評価される。

括弧( )を使うことで、式の評価順序を明確にし、制御することができる。

タスク

スワイプしてコーディングを開始

現在のFitness Trackerコードでは、複数の入れ子になったif文がロジックを読みづらく、保守しにくくしています。あなたの課題は、論理演算子を使って、1つの簡潔なif文に書き換えることです。複数の条件を組み合わせるためにand論理演算子を使用してください。

フィットネス目標を効率的に追跡するのと同様に、コードも効率的であるべきです。現在の実装では、以下をチェックしています:

  1. ユーザーが歩数目標を達成していない。
  2. ユーザーが十分なカロリーを消費していない。
  3. ユーザーが朝に運動していない。

同じロジックを維持しつつ、可読性を向上させるようにコードを書き換えてください。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  5
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt