পাইথন প্রোগ্রামিং ল্য়াংগুয়েজ-৭ - SMH Amiri

সর্বশেষ লিখাসমূহ

পাইথন প্রোগ্রামিং ল্য়াংগুয়েজ-৭

 



পাইথন আইডেনটিফায়ার

বিভিন্ন সত্ত্বা(entity) যেমন- চলক(variable), ক্লাস(class), ফাংশন(function) ইত্যাদির নাম দেওয়ার জন্য আইডেন্টিফায়ার ব্যবহৃত হয়। এটি সত্ত্বাসমূহ(entities)-কে পৃথক করতে সহায়তা করে।


আইডেন্টিফায়ার লেখার নিয়মঃ

  • ছোট হাতের অক্ষর(a to z), বড় হাতের অক্ষর(A to Z), ডিজিট(0 to 9) এবং আন্ডারস্কোর(_) এর সমন্বয়ে আইডেন্টিফায়ার গঠিত হতে পারে। যেমন- mySatt, var_1 এবং hello_my_friend এইসব বৈধ আইডেন্টিফায়ার।
  • আইডেন্টিফায়ার ডিজিট দিয়ে শুরু হতে পারবে না। যেমন- 4_satt_you বৈধ নয়। কিন্তু satt_4_you খুব জোরে বৈধ।
  • আইডেন্টিফায়ার যেকোনো দৈর্ঘ্যের হতে পারে।
  • কিওয়ার্ডকে আইডেন্টিফায়ার হিসাবে ব্যবহার করা যাবে না।
    >>> class = 5
      File "", line 1
        class = 5
               ^
    SyntaxError: invalid syntax
  • আইডেন্টিফায়ার এর জন্য আমরা বিশেষ প্রতীক যেমন- !, @, #, $, % ইত্যাদি ব্যবহার করতে পারবো না।
    >>> b% = 5
      File "", line 1
        b% = 5
         ^
    SyntaxError: invalid syntax

যে বিষয়ে সতর্ক থাকতে হবে

  • পাইথন কেস-সেনসিটিভ(case-sensitive) ভাষা। অর্থাৎ Variable এবং variable একই রকম না। আইডেন্টিফায়ার-এর জন্য সর্বদা অর্থপূর্ণ নাম ব্যবহার করুন।
  • a= 25 পাইথনের জন্য বৈধ(valid) আইডেন্টিফায়ার হলেও age= 25 লিখলে খুব সহজেই বুঝা যায় যে এটি বয়স বুঝানোর জন্য ব্যবহার করা হয়েছে। এমনকি আপনি যদি ধীর্ঘ দিন পরেও কোড দেখেন তবুও সহজেই বুঝতে পারবেন কেন এই কোড লিখেছিলেন।
  • মাল্টিপলওয়ার্ড(Multiple word) আন্ডারস্কোর এর মাধ্যমে আলাদা করা যেতে পারে। যেমন-this_is_a_long_variable
  • আমরা চাইলে ক্যামেল-কেস(camelCase ) স্টাইলও ব্যবহার করতে পারি। এক্ষেত্রে প্রথম শব্দ ছাড়া বাকী সকল শব্দের প্রথম অক্ষর বড় হাতের অক্ষরে লিখতে হবে। যেমন-camelCaseVariable



পাইথন স্টেটমেন্ট, ইন্ডেন্টেশন এবং কমেন্ট



পাইথন স্টেটমেন্ট

পাইথন ইন্টারপ্রেটার(interpreter) যে ইন্সট্রাকশনসমূহ(Instruction) সম্পাদন করে তাকেই স্টেটমেন্ট বলে। উদাহরণস্বরূপ, name = SATT একটি এসাইনমেন্ট স্টেটমেন্ট। এটা ছাড়াও অন্যান্য স্টেটমেন্ট যেমন- ifforwhilepass ইত্যাদি স্টেটমেন্ট পরবর্তী অধ্যায়সমূহে আলোচনা করা হয়েছে।


মাল্টিলাইন(Multi-line) স্টেটমেন্ট

পাইথনে নিউলাইন ক্যারেক্টার((newline character) দ্বারা স্টেটমেন্ট শেষ হয়। কিন্তু আপনি চাইলে লাইন কন্টিনিউয়েশন ক্যারেক্টার দ্বারা মাল্টিপল লাইনের স্টেটমেন্ট তৈরি করতে পারবেন।

উদাহরণঃ

sum_of_1_to_9 = 1 + 2 + 3 + \
                4 + 5 + 6 + \
                7 + 8 + 9

এটি প্রকাশ্য লাইন কন্টিনিউয়েশন। পাইথনে প্যারেন্থেসিস( ), ব্রাকেট[ ] এবং ব্রাসেস{ } ব্যবহার করলে স্বয়ংক্রিয়ভাবেই লাইন চলমান থাকে। এক্ষেত্রে প্রকাশ্য লাইন কন্টিনিউয়েশন ক্যারেক্টার ব্যবহার করতে হয় না।

উদাহরণস্বরূপঃ উপরের মাল্টিলাইন স্টেটমেন্টকে আপনি নিচের মত করেও লিখতে পারেন।

sum_of_1_to_9 = (1 + 2 + 3 +
                4 + 5 + 6 +
                7 + 8 + 9)

এখানে প্যারেন্থেসিস( ) ব্যবহার করায় নিজ থেকেই লাইন চলমান রয়েছে। একইভাবে [ ] এবং { } ব্যবহার করলেও বাহ্যিকভাবে লাইন কন্টিনিউয়েশনের প্রয়োজন হয় না। উদাহরণস্বরূপঃ

fav_food = ['sweet',
          'hilsha fish',
          'milk',
          'Eag']
সেমিকোলন ব্যবহার করে আমরা মাল্টিপল স্টেটমেন্টকে একই লাইনে রাখতে পারি।

উদাহরণস্বরূপঃ

 age= 30; name="Azizur Rahman"; mobile =1000000



পাইথন ইন্ডেন্টেশন

অধিকাংশ প্রোগ্রামিং ভাষা যেমন- C, C++, Java ইত্যাদিতে কোড ব্লক নির্ধারণের জন্য ব্রাসেস{ } ব্যবহার করা হয়। কিন্তু পাইথনে ইন্ডেন্টেশন(Indentation) ব্যবহার করতে হয়।

একটি কোড ব্লক যেমন function, loop, condition ইত্যাদির বডি(body)) ইন্ডেন্টেশন দিয়ে শুরু হয় এবং এর প্রথম আনইনডেন্টেশন লাইন দিয়ে শেষ হয়। ইন্ডেন্টেশন কি পরিমাণ হবে তা আপনার উপর নির্ভর করবে। কিন্তু সমস্ত ব্লক জুড়ে এটি অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে।

সাধারণত ইন্ডেন্টেশনের জন্য ট্যাব এর পরিবর্তে চারটি স্পেস ব্যবহার করতে হয়।

উদাহরণস্বরূপঃ

for i in range(1,10):
    print(i)
    if i ==6:
        break

পাইথনে ইন্ডেন্টেশনের প্রতি জোর দেওয়ায় কোড দেখতে অনেক ঝরঝরে লাগে। এটি পাইথন প্রোগ্রামকে দেখতে একইরকম এবং সামঞ্জস্যপূর্ণ কর তোলে।

লাইন চলমান থাকলে ইন্ডেন্টেশন এড়িয়ে চলা হয়। কিন্তু সর্বদাই ইন্ডেন্ট ব্যবহার করা ভাল। কারণ এটি আপনার কোডকে আরোও পাঠযোগ্য করে তোলে।

উদাহরণস্বরূপঃ

if True:
    print('Hello')
    name= "SATT"
এবং
if True: print('Hello');  name= "SATT"

উপরের উভয় প্রোগ্রামই বৈধ এবং একই কাজে ব্যবহৃত হয়। কিন্তু পুর্বের টার স্টাইল অনেক সহজ।

যাইহোক, ইন্ডেন্টেশনের ব্যবহার ভূল করলে IndentationError ফলাফল দেখাবে।


পাইথন কমেন্ট

প্রোগ্রামিং লেখার সময় কমেন্ট খুবই গুরুত্বপূর্ণ। প্রোগ্রামের মাধ্যমে কি করা হচ্ছে তা কমেন্টের মাধ্যমে বর্ণনা করা হয়। ফলে নতুন কোনো প্রোগ্রামারকে আপনার লেখা কোড দেখে প্রোগ্রামের উদ্যেশ্য বুঝতে খুব বেশি পরিশ্রম করতে হয় না। দীর্ঘদিন পূর্বের লেখা প্রোগ্রামের মূল বিষয় আপনি ভুলে যাওয়াটাই স্বাভাবিক। তাই কিছু সময় নিয়ে হলেও কমেন্টের মাধ্যমে প্রোগ্রামের উদ্দেশ্য লিখলে ভবিষ্যতে এর ভাল ফল পাওয়া যাবে।

পাইথনে কমেন্ট শুরু করার জন্য হ্যাস(#) প্রতীক ব্যবহার করা হয়।

এটি নতুন লাইন(new line) পর্যন্ত সম্প্রসারিত হয়। প্রোগ্রাম ভালভাবে বুঝার সর্বত্তোম উপায় হলো প্রোগ্রামে কমেন্ট করা। পাইথন ইন্টারপ্রেটার কমেন্টকে এড়িয়ে চলে।

#এটি একটি কমেন্ট
#SATT প্রিন্ট করবে
print('SATT')

মাল্টিলাইন(Multi-line) কমেন্ট

আপনি যদি একাধিক/মাল্টিপল লাইনকে একই সাথে কমেন্ট করতে চান তাহলে একটি পদ্ধতি হচ্ছে প্রত্যেক লাইনের শুরুতে হ্যাস(#) প্রতীক ব্যবহার করুন।

উদাহরণস্বরূপঃ

#এটি অনেক লাইনের কমেন্ট  
#এটিও অনেক লাইন কমেন্ট এর অংশ
#একই ভাবে এটিও অনেক লাইন কমেন্ট এর অংশ

অন্য আরেকটি পদ্ধতি হচ্ছে ট্রিপল-কোট(Triple quotes) ব্যবহার করা। যেমন- ''' অথবা """।

এই ট্রিপল-কোট(Triple quotes) মূলত মাল্টি-লাইন স্ট্রিং কমেন্ট করার জন্য ব্যবহার করা হয়। কিন্তু এগুলো মাল্টি-লাইন কমেন্টের জন্যও ব্যবহার করা যেতে পারে। ডকস্ট্রিং না হওয়া পর্যন্ত এগুলো অতিরিক্ত কোনো কোড উৎপাদন করে না।

"""এটিও মাল্টি-লাইন
   কমেন্টের স্বয়ংসম্পূর্ণ উদাহরণ!"""

পাইথন ডকস্ট্রিং

ডকুমেন্টেশন স্ট্রিং এর সংক্ষিপ্ত রুপ হচ্ছে ডকস্ট্রিং(Docstring)

এটি একটি স্ট্রিং যাকে অবশ্যই মডিউলফাংশনক্লাস এবং মেথড ডেফিনিশন এর একেবারে প্রথম স্টেটমেন্টে লিখতে হয়। ফাংশন এবং ক্লাস এর মাধ্যমে আপনি কি করতে চাচ্ছেন তা অবশ্যই ডকস্ট্রিং এ লিখতে হবে।

ডকস্ট্রিং লেখার সময় ট্রিপল-কোট(Triple quotes) ব্যবহার করা হয়।

উদাহরণস্বরূপঃ

def double(num):
    """Function to double the value"""
    return 2*num

ফাংশন এর মধ্য দিয়ে __doc__ এট্রিবিউট/প্যারামিটার অতিক্রম করানোর মাধ্যমে ডকস্ট্রিং(Docstring ) পুনরুদ্ধার করা যায় বা পাওয়া যায়। উপরের প্রোগ্রামটি একবার রান করানোর পরে নিচের কোড পাইথন শেল-এ লিখুন।

>>> print(double.__doc__)
Function to double the value