পাইথনে অপারেটর অগ্রাধিকার এবং সহযোগীতা {Operator Precedence and Associativity in python}

 
পাইথনে অপারেটর অগ্রাধিকার এবং সহযোগীতা {Operator Precedence and Associativity in python}

একটি সূত্রে একাধিক অপারেটর থাকতে পারে। এই ধরনের ক্ষেত্রে, প্রোগ্রামারকে জানা উচিত কোন অপারেটরটি প্রথমে কার্যকর করা হয় এবং কোনটি পরবর্তীতে কার্যকর করা হয়।অপারেটরদের কার্য সম্পাদনের ক্রমকে অপারেটর অগ্রাধিকার বলা হয়।নিম্নলিখিত সারণীতে অপারেটরদের তাদের অগ্রাধিকার অনুযায়ী সংক্ষিপ্ত করা হয়েছে।এর অর্থ হল যে অপারেটরগুলি সর্বোচ্চ অগ্রাধিকার পাচ্ছে তারা টেবিলের প্রথম দিকে তালিকাভুক্ত করা হয়েছে  এবং যে অপারেটরগুলি অগ্রাধিকার কম পাছে তাদের কে নিচের দিকে দেখানো হয়েছে।
  1. () পারেনথেসিস
  2. ** এক্সপোনেনটিয়াটিও
  3. - , ~ ইউনারী মাইনাস, বিটওয়াইজ কমপ্লেমেন্ট
  4. * , / , // , % মাল্টিপ্লিকেশন, ডিভিশন, ফ্লোর ডিভিশন, মডুলাস
  5. + , - আড্ডিশন, সাবট্রাকশন
  6. << , >> বিটওয়াইজ লেফট শিফট, বিটওয়াইজ রাইট শিফট
  7. & বিটওয়াইজ এন্ড
  8. ^ বিটওয়াইজ XOR
  9. | বিটওয়াইজ ওর 
  10. > , >= , < , <=, == , != রিলেশনাল (কোম্পারিসন) অপারেটরস
  11. = , %= , /= , //= , ~= , += , *= , **= এসাইনমেন্ট অপারেটরস
  12. is , is not আইডেন্টিটি অপারেটরস
  13. in , not in মেম্বারশিপ অপারেটরস
  14. not লজিকাল নট
  15. or লজিকাল ওর
  16. and লজিকাল এন্ড
ধরুন একটি এক্সপ্রেশনে একই অগ্রাধিকার থাকা অপারেটর রয়েছে,তারপর কোন অপারেটর আগে কার্যকর করা করা হবে সেটি অন্য প্রশ্ন।এর অর্থ হল বাম থেকে ডানে বা ডান থেকে বামে কার্যকর হয় কিনা তা জানা।একে বলা হয় সহযোগীতা {associativity}। 'অ্যাসোসিয়েটিভিটি' হল সেই অর্ডার যেখানে একটি এক্সপ্রেশনকে মূল্যায়ন করা হয় যাতে একই অগ্রাধিকারের একাধিক অপারেটর থাকে।পাইথনে প্রায় সব অপারেটরের বাম-থেকে-ডান সহযোগীতা রয়েছে। এই অগ্রাধিকার নিয়মগুলি কীভাবে প্রয়োগ করা যেতে পারে তা বোঝার জন্য আসুন একটি এক্সপ্রেশন মান 3/2*4+3+(10/4)** 3-2 নেওয়া যাক। এবং এই এক্সপ্রেশনের ফাইনাল  মান হবে 22.625, নিচের কোড হিসাবে দেখানো হয়েছে:

3/2*4+3+(10/4)**3-2

The expression in () is evaluated first
3/2*4+3+2.5**3-2

Exponentiation ** is next
3/2*4+3+15.625-2

* and / have equal precedence. They are evaluated from left to right (associativity). So, first / and then * .
1.5*4+3+15.625-2
6.0+3+15.625-2

+ and - have equal precedence. They are evaluated from left to right (associativity). So, first + and then - .
9.0+15.625-2
24.625-2
22.625 final answer{codeBox}
নবীনতর পূর্বতন