ফাংশন ( Function )
আমরা কোন একটি কাজ করার জন্য কোড লিখি। মনে করো,কোন একটি কাজ করার জন্য দশ লাইনের একটি কোড লিখতে হয়েছে।এই কাজটি আবার করার প্রয়োজন হলে প্রথম থেকে আবার কোড না লিখে আমরা ফাংশন ব্যবহার করতে পারি।
ফাংশন একটি সুবিন্যস্ত কোড ব্লক যা একই ধরনের কোড বারবার লিখা পরিহার করার জন্য লিখা হয়৷
কোন কোডকে বারবার ব্যবহার করতে চাইলে আমরা একটি ফাংশনের ভেতর ঐ কোডটি লিখে রাখবো এবং যখন কোডটি ব্যবহার করার প্রয়োজন হবে তখন আবার প্রথম থেকে কোড না লিখে কেবল ঐ ফাংশনটিকে কল (call) করবো।
পাইথনে দু ধরনের ফাংশন ব্যবহার করা হয়।
- বিল্ট-ইন (built in)
- ইউজার ডিফাইন্ড (user defined)
বিল্ট-ইন ফাংশন
এই ফাংশনগুলো আগে থেকেই পাইথনে ডিফাইন করা আছে।আমাদের কষ্ট করে কোন কোড লিখতে হবে না।যখন প্রয়োজন হবে আমরা শুধু কল করবো। যেমনঃ print(), map(),input()
print() একটি ফাংশন (function) যার ভেতরে আমরা যা লিখবো, ফাংশনটি তা স্ক্রিনে প্রিন্ট করবে বা দেখাবে। print() ফাংশনটি কিভাবে কাজ করবে, সেটি কিন্তু আমাদের জানাতে হচ্ছে না, পাইথনের যে সফটওয়্যার প্রােগ্রামটি চালায়, সেখানে ওই ফাংশনের কাজ বলা আছে। তাই একে আমরা বলতে পারি বিল্ট-ইন (built-in) ফাংশন।
print() ছাড়াও আরো কিছু ফাংশন ও তাদের ব্যবহার নিচে দেয়া হলোঃ
type()
type() ফাংশনটি আমাদেরকে কোনাে ভেরিয়েবলের ডাটা টাইপ বলে দেয়। এরকম আরাে কিছুবিল্ট-ইন ফাংশন রয়েছে, আমরা প্রয়ােজনমতাে ব্যবহার শিখে নেব।input()
আমরা যদি ব্যবহারকারির কাছ থেকে কোনাে কিছু ইনপুট নিতে চাই, তাহলে তার জন্য পাইথনে input() নামে একটি ফাংশন রয়েছে।এবার এন্টার কি চাপলেনিচের লাইন প্রিন্ট হবে:
What is your name? >> Shemanto
তারপরে নিজের নাম টাইপ করে এন্টার চাপো। দেখবে নিচের মতো লিখা আসবে
>>Welcome to Python, Shemanto !
পুরো কোডটা নিজের হাতে একবার করে ভালোভাবে বুঝো কিভাবে ইনপুট দেয়া হয়।
note: input() ফাংশনটি সবসময় স্ট্রিং রিটার্ন করে। তাই number নিয়ে ম্যাথ অপারেশনস করার সময় int() ব্যবহার করে স্টিং ভেরিয়েবলকে ইন্টিজার ভ্যারিয়েবলে কনভার্ট করা হয়।
range()
সিনট্যাক্স: range( start_value, end_value, increament_value) ফাংশন তিনটি প্যারামিটার নিতে পারে।
start_value ফাংশন কত থেকে কাউন্টিং শুরু করবে তা ডিফাইন করে, end_value ডিফাইন করে ফাংশনের শেষ সীমা এবং increment_value ডিফাইন করে প্রতি ধাপে কত করে মান বৃদ্ধি হবে। start_value এবং incremental_value হচ্ছে অপশনাল,ফাংশনে এই দুটি প্যারামিটার পাস না করলে ও ফাংশন এক্সিকিউট হবে। সেক্ষেত্রে বাই-ডিফল্ট start_value এর মান হবে 0 এবং incremental_value এর মান হবে 1।
ইউজার ডিফাইন্ড ফাংশন
এবার নিচের কোডটি দেখে স্ট্রাকচারের সাথে মিলিয়ে নাও এবং IDE খুলে লিখে ফেল-
এবার কোডটি রান করে দেখ কি আসে।
কি? শুধু This is not in function লিখা আসছে তো? firstFunction এর কোন কোডই এক্সিকিউট হচ্ছে না, তাই না?? এর কারণ আমরা যখন ফাংশনকে ব্যবহার করতে চাই তখন ঐ ফাংশনটিকে কল করতে হয়। কোডের যে অংশেই আমরা ফাংশনটি ব্যবহার করতে চাইবো তখনই ফাংশনটি কল করবো।
ফাংশন কলিংএবার আগের কোডে ফাংশন কল করে রান করো।
ফাংশন প্যারামিটারস (Function Parameters)
আমাদের ফাংশন শেখার মূল লক্ষ্যই ছিল আমরা কোন একটি কাজ করার জন্য ফাংশনের ভেতর কোড লিখবো এবং যখনই ঐ কাজ আবার করার প্রয়োজন হবে তখন আবার কোড না লিখে আমরা কেবল ঐ ফাংশনটিকে কল করবো।
কিন্তু একটু চিন্তা করো,প্রথমবারের কোডটিতে আমরা ফাংশনের মাঝে ভ্যারিয়েবল নিয়েছি।এতে কিন্তু একটু সমস্যা আছে।
ধরো আমরা তিনটি সংখ্যা যোগ করার কোড লিখলাম আর ফাংশনের ভেতর ভ্যারিয়েবল নিলাম । এখন আবার ভিন্ন তিনটি সংখ্যা যোগ করার প্রয়োজন হলো। তাহলে কিন্তু আমাদের ফাংশনের ভেতর ভ্যারিয়েবল চেঞ্জ করতে হচ্ছে। এতে কিন্তু আমাদের ফাংশন ব্যবহারের মূল উদ্দেশ্য "পরিশ্রম কমিয়ে আনা" সফল হচ্ছে না।
আর এই সমস্যা সমাধানের জন্যই আছে প্যারামিটার।
প্যারামিটারস সিম্পল ভ্যারিয়েবল ছাড়া আর কিছুই। আগের কোডটিই এবার প্যারামিটার সহ দেখ-
এবার মনে করো আমাদের তিনটি সংখ্যা 8,9,6 যোগ করার প্রয়োজন হলো। আমরা কেবল ThreeAdditionFunction নামে ফাংশনটিকে কল করবো আর প্যারানথিসিসের ভেতর প্যারামিটার 8,9,6 লিখে দেব
আমার লাইফের রিয়েল-টাইম আপডেট পেতে ফলো করতে পারো ইন্সট্রাগ্রামে: https://www.instagram.com/shemanto_sharkar/
Support my blog: ব্লগের কন্টেন্ট এবং টেলিগ্রাম চ্যানেল যদি আপনার লাইফে কিছুটা হলেও ইম্পেক্ট ফেলে থাকে তবে আপনি চাইলে এক কাপ কফি কিনে আমাকে সাহায্য করতে পারেন,এতে করে আমি আমার ব্লগ এড ফ্রি ভাবে চালিয়ে যেতে পারবো-