Operator Precedence
Operator Precedence అంటే ఏమిటి?
ఒకే expression లో చాలా operators ఉన్నప్పుడు, Python వాటిని ఒక నిర్దిష్ట క్రమంలో evaluate చేస్తుంది. ఈ క్రమాన్నే Operator Precedence అంటారు.
ఉదాహరణకు 2 + 3 * 4 expression లో ముందుగా multiplication జరుగుతుంది. తర్వాత addition జరుగుతుంది. అందువల్ల result 14 అవుతుంది, 20 కాదు.
Operator Precedence క్రమం
()Parentheses**Exponentiation+x,-xUnary plus మరియు unary minus*,/,//,%+,-<,<=,>,>=,==,!=notandor
Parentheses ఉపయోగం
ఏ భాగం ముందుగా evaluate కావాలో స్పష్టంగా చెప్పడానికి parentheses ఉపయోగిస్తాము. Parentheses ఉన్న expression భాగం ముందుగా execute అవుతుంది.
2 + 3 * 4 లో multiplication ముందుగా జరుగుతుంది. కానీ (2 + 3) * 4 లో parentheses కారణంగా addition ముందుగా జరుగుతుంది.
ఒకే precedence ఉన్న operators
ఒకే precedence ఉన్న కొన్ని operators ఉన్నప్పుడు సాధారణంగా Python వాటిని ఎడమ నుంచి కుడికి evaluate చేస్తుంది. ఉదాహరణకు 20 / 5 * 2 లో division మరియు multiplication కి ఒకే precedence ఉంది. కాబట్టి ముందుగా 20 / 5, తర్వాత వచ్చిన result ని 2 తో multiply చేస్తుంది.
ఎక్కడ ఉపయోగపడుతుంది?
Calculations, conditions, bills, marks, discounts మరియు logical expressions రాసేటప్పుడు Operator Precedence చాలా ఉపయోగపడుతుంది. Expression ఎలా evaluate అవుతుందో అర్థం కాకపోతే తప్పు result రావచ్చు. అందుకే అవసరమైనప్పుడు parentheses ఉపయోగించడం మంచిది.
Simple Explanation
Operator Precedence అంటే expression లో ఏ operator ముందుగా పనిచేయాలో Python నిర్ణయించే నియమం.
సులభంగా గుర్తుంచుకోవడానికి: Parentheses → Power → Multiplication/Division → Addition/Subtraction → Comparisons → not → and → or.
ఉదాహరణకు 10 + 2 * 3 లో ముందుగా 2 * 3 జరుగుతుంది. తర్వాత 10 + 6 జరుగుతుంది. Result 16.
మీకు వేరే క్రమం కావాలంటే parentheses ఉపయోగించాలి. (10 + 2) * 3 result 36 అవుతుంది.
Real-Life Example
ఒక shopping bill లో వస్తువు ధర ₹100, quantity 2, delivery charge ₹30 అనుకుందాం. Total ధరను price * quantity + delivery_chargeగా రాస్తే ముందుగా price మరియు quantity multiply అవుతాయి. తర్వాత delivery charge add అవుతుంది.
అలాగే ఒక పరీక్షలో ఒక భాగానికి double marks ఇవ్వాలంటే part_a + part_b * 2 అనే expression లో multiplication ముందుగా జరుగుతుంది. Parentheses ఉపయోగిస్తే calculation యొక్క ఉద్దేశం మరింత స్పష్టంగా ఉంటుంది.
Code Examples
Arithmetic Operators లో Precedence
result = 2 + 3 * 4
print(result)
ఈ expression లో * operator కి + కంటే ఎక్కువ precedence ఉంది. కాబట్టి Python ముందుగా 3 * 4ను calculate చేసి, వచ్చిన result కి 2ను add చేస్తుంది.
14
Parentheses మరియు Logical Precedence
total = (2 + 3) * 4
is_valid = 10 > 5 and 3 + 2 == 5
print(total)
print(is_valid)
మొదటి expression లో parentheses కారణంగా addition ముందుగా జరుగుతుంది. రెండవ expression లో arithmetic operations మరియు comparison ముందుగా జరుగుతాయి. తర్వాత and evaluate అవుతుంది.
20 True
Line-by-Line Explanation
ఈ line లో Python ముందుగా
3 * 4ను calculate చేస్తుంది, ఎందుకంటే multiplication కి addition కంటే ఎక్కువ precedence ఉంది. తర్వాత వచ్చిన 12కి 2ను add చేసి, result variable లో 14ను store చేస్తుంది.
ఈ line result variable లో ఉన్న 14 విలువను screen పై చూపిస్తుంది.
Parentheses లో ఉన్న
2 + 3 ముందుగా calculate అవుతుంది. Result 5ను 4తో multiply చేసి, total variable లో 20ను store చేస్తుంది.
Python ముందుగా
3 + 2ను calculate చేస్తుంది. తర్వాత రెండు comparisons evaluate అవుతాయి: 10 > 5 మరియు 5 == 5. రెండూ True కావడంతో and result కూడా True అవుతుంది.
ఈ line total variable లో ఉన్న 20ను print చేస్తుంది.
ఈ line is_valid variable లో ఉన్న Boolean value Trueను print చేస్తుంది.
Try It
Try this Python code:
a = 10
b = 3
result = a + b * 2
print(result)
Practice
Practice: పై code లో parentheses ఉపయోగించి ముందుగా a + b calculate అయ్యేలా మార్చండి. Program output 30 రావాలి.
Hint: + ముందుగా జరగాలంటే a + b చుట్టూ parentheses పెట్టండి.
Practice: 10 + 5 * 2 expression ని Python ఏ క్రమంలో calculate చేస్తుందో రాసి, final result చెప్పండి.
Hint: ముందుగా multiplication, తర్వాత addition జరుగుతుంది.
Practice: (10 + 5) * 2 expression result ఏమిటో కనుగొనండి. ఇది parentheses లేకుండా ఉన్న expression కంటే ఎందుకు భిన్నంగా ఉందో వివరించండి.
Hint: Parentheses లోని భాగం మొదట evaluate అవుతుంది.
Common Mistakes
2 + 3 * 4 result 20 అని అనుకోవడం.
Multiplication కి addition కంటే ఎక్కువ precedence ఉంటుంది. కాబట్టి ముందుగా 3 * 4 జరిగి result 14 అవుతుంది.
తమకు కావాల్సిన calculation order ఉన్నప్పటికీ parentheses ఉపయోగించకపోవడం.
ముందుగా జరగాల్సిన భాగాన్ని parentheses లో పెట్టండి. ఉదాహరణకు (2 + 3) * 4.
/, *, //, % operators ఎప్పుడూ వేరే precedence కలిగి ఉంటాయని అనుకోవడం.
ఈ operators ఒకే precedence group లో ఉంటాయి. సాధారణంగా ఇవి ఎడమ నుంచి కుడికి evaluate అవుతాయి.
and మరియు or క్రమాన్ని గమనించకుండా పెద్ద condition రాయడం.
and కి or కంటే ఎక్కువ precedence ఉంటుంది. Condition స్పష్టంగా ఉండేందుకు అవసరమైనప్పుడు parentheses ఉపయోగించండి.
Expression ని ఎడమ నుంచి కుడికి మాత్రమే evaluate చేయడం.
ముందుగా operator precedence చూడాలి. ఒకే precedence ఉన్న operators ఉన్నప్పుడు మాత్రమే సాధారణంగా ఎడమ నుంచి కుడికి evaluate చేయాలి.
Interview Questions
Python లో Operator Precedence అంటే ఏమిటి?
Answer: ఒక expression లో అనేక operators ఉన్నప్పుడు వాటిని ఏ క్రమంలో evaluate చేయాలో నిర్ణయించే నియమాన్ని Operator Precedence అంటారు.
2 + 3 * 4 result ఎంత? ఎందుకు?
Answer: Result 14. Multiplication కి addition కంటే ఎక్కువ precedence ఉండటం వల్ల ముందుగా 3 * 4 జరుగుతుంది.
Operator order మార్చడానికి ఏది ఉపయోగిస్తారు?
Answer: Parentheses () ఉపయోగిస్తారు. Parentheses లోని expression ముందుగా evaluate అవుతుంది.
Python లో and మరియు or లో ఏదికి ఎక్కువ precedence ఉంది?
Answer: and కి or కంటే ఎక్కువ precedence ఉంది.
Exam Questions
10 + 2 * 5 expression output ఏమిటి?
Answer:
20. ముందుగా 2 * 5 జరిగి, తర్వాత 10 add అవుతుంది.
(10 + 2) * 5 expression output ఏమిటి?
Answer:
60. Parentheses కారణంగా ముందుగా 10 + 2 జరుగుతుంది.
Arithmetic operators లో + మరియు * లో ఏదికి ఎక్కువ precedence ఉంది?
Answer:
* multiplication operator కి ఎక్కువ precedence ఉంది.
ఒకే precedence ఉన్న operators ను Python సాధారణంగా ఏ దిశలో evaluate చేస్తుంది?
Answer:
సాధారణంగా ఎడమ నుంచి కుడికి evaluate చేస్తుంది.
Quick Revision
- Operator Precedence expression లో operators పనిచేసే క్రమాన్ని నిర్ణయిస్తుంది.
- Parentheses ఉన్న భాగం ముందుగా evaluate అవుతుంది.
- Multiplication, division, floor division మరియు modulus కి addition, subtraction కంటే ఎక్కువ precedence ఉంటుంది.
- Comparison operators తర్వాత not, and, or వంటి logical operators evaluate అవుతాయి.
- ఒకే precedence ఉన్న operators సాధారణంగా ఎడమ నుంచి కుడికి evaluate అవుతాయి.
- Calculation order స్పష్టంగా ఉండేందుకు parentheses ఉపయోగించడం మంచి అలవాటు.
- 2 + 3 * 4 result 14; (2 + 3) * 4 result 20.
