কম্পিউটার

পাইথনে ইনক্রিমেন্ট এবং ডিক্রিমেন্ট অপারেটর?


Python এর unary increment/decrement operator (++/--) নেই। একটি মান বৃদ্ধি করার পরিবর্তে, ব্যবহার করুন

a += 1

একটি মান হ্রাস করতে, ব্যবহার করুন−

a -= 1

উদাহরণ

>>> a = 0
>>>
>>> #Increment
>>> a +=1
>>>
>>> #Decrement
>>> a -= 1
>>>
>>> #value of a
>>> a
0

পাইথন একই জিনিস করার একাধিক উপায় প্রদান করে না।

যাইহোক, সতর্ক থাকুন যদি আপনি C এর মত ল্যাঙ্গুয়া থেকে আসছেন, পাইথনের "ভেরিয়েবল" নেই যে অর্থে C করে, পরিবর্তে পাইথন নাম এবং বস্তু ব্যবহার করে এবং পাইথনে পূর্ণসংখ্যা (int's) অপরিবর্তনীয়।

একটা উদাহরণ দিয়ে বোঝা যাক---

>>> a =1
>>> print(id(a))
1919375088
>>> print(hex(id(a)))
0x726756f0

তাই উপরের বিবৃতিটি পাইথনে যা বোঝায় তা হল:মান 1 বিশিষ্ট int-এর একটি অবজেক্ট তৈরি করুন এবং এটির নাম দিন। অবজেক্ট হল int এর একটি উদাহরণ যার মান 1 এবং নাম a এটিকে বোঝায়। বরাদ্দকৃত নাম a এবং এটি যে বস্তুটিকে নির্দেশ করে তা স্বতন্ত্র।

এখন একটি বৃদ্ধি করা যাক

>>> a +=1
>>> print(id(a))
1919375104
>>> print(hex(id(a)))
0x72675700

যেহেতু int অপরিবর্তনীয়, তাই পাইথন উপরের বিবৃতিটিকে

হিসেবে বোঝে
  • যে বস্তুটিকে নির্দেশ করে তা দেখুন (এটি একটি int এবং id 0x726756f0)

  • অবজেক্ট 0x726756f0 এর মান দেখুন (এটি 1)।

  • সেই মানের সাথে 1 যোগ করুন (1+1 =2)

  • মান 2 সহ একটি নতুন int অবজেক্ট তৈরি করুন (0x72675700 আইডি সহ অবজেক্ট)।

  • এই নতুন অবজেক্টে (0x72675700)

    নামটি রিবাইন্ড করুন
  • এখন a অবজেক্ট 0x72675700 কে বোঝায় এবং আগের অবজেক্ট (0x726756f0) কে আর a নামে উল্লেখ করা হয় না। যদি মূল বস্তুর উল্লেখ করে অন্য কোনো নাম না থাকে তবে এটি পরে আবর্জনা সংগ্রহ করা হবে।

সুতরাং উপরে থেকে, আপনি বুঝতে পারবেন যখন আমরা করি:a +=1

এটি a+1 এ একটি পুনরায় বরাদ্দ করবে। এটি একটি ইনক্রিমেন্ট অপারেটর নয়, কারণ এটি a বৃদ্ধি করে না, তবে এটি পুনরায় বরাদ্দ করে৷

চলুন আরও কিছু উদাহরণ দিয়ে উপরে বৃদ্ধি/কমানো বোঝা যাক—

>>> a = b = c =1
>>> id(a)
1919375088
>>> id(b)
1919375088
>>> id(c)
1919375088
>>> #Above all have the same id
>>>
>>> # Now increment a
>>> a +=1
>>> id(a)
1919375104
>>> id(b)
1919375088
>>> id(c)
1919375088

উপরে থেকে আপনি বুঝতে পারবেন আমাদের একটি একক বস্তু আছে যা a, b এবং c বোঝায় (আইডি 1919375088 সহ একটি int)

a-এর মান বৃদ্ধি করলে, এখন a আবার a+1 (id:1919375104) এবং অন্যান্য b এবং c একই বস্তুকে নির্দেশ করে (1919375088)।

এছাড়াও পাইথন ++/-- অপারেটর নিয়ে আসে।

>>> a =1
>>> ++a
1
>>> --a
1

  1. পাইথনে &এবং এবং অপারেটরগুলির মধ্যে পার্থক্য কী?

  2. পাইথনে ++ এবং -- অপারেটরদের আচরণ কী?

  3. পাইথনে কিভাবে ++ এবং -- অপারেটর কাজ করে?

  4. কিভাবে আমরা একটি স্ট্রিং মূল্যায়ন করব এবং পাইথনে একটি বস্তু ফেরত দেব?