🐍
পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ
  • পাইথন প্রোগ্রামিং ল্যাংগুয়েজ
  • সূচি
  • ব্রিফ হিস্টোরি অফ পাইথন
  • অধ্যায়ঃ১ পাইথন বেসিক
    • ভ্যারিয়েবল
    • কন্সট্যান্টস
    • আইডেন্টিফাইয়ারস
    • নেমিং কনভেনশন
    • ইন্ডেনটেশন
    • কমেন্টস
    • ডক স্ট্রিংস
    • রিজার্ভড কি-ওয়ার্ডস
    • অপারেটরস
      • এরিথমেটিক অপারেটরস
      • রিলেশনাল অপারেটরস
      • লজিক্যাল অপারেটরস
      • বিট-ওয়াইজ অপারেটরস
      • অ্যাসাইনমেন্ট অপারেটরস
      • আইডেন্টিটি অপারেটরস
      • মেম্বারশিপ অপারেটরস
    • ইনপুট-আউটপুট
  • অধ্যায়ঃ ২ ডেটা টাইপ্স
    • জেনারেল টাইপ্স
      • ইন্টিগ্রাল
        • ইন্টিজার
        • বুলিয়ান
      • ফ্লোটিং
        • ফ্লোটিং পয়েন্ট
        • কমপ্লেক্স
        • ডেসিমাল
      • স্ট্রিংস
    • কালেকশন ডেটা টাইপ্স
      • সিকোয়েন্স টাইপ
        • লিস্ট
        • ট্যুপল
      • সেট টাইপ
        • সেট
        • ফ্রোজেন সেট
      • ম্যাপিং
        • ডিকশনারি
        • কাউন্টার
  • অধ্যায় ৩ঃ কন্ট্রোল স্ট্রাকচারস
    • কন্ডিশনাল স্টেটমেন্ট
    • লুপ
      • ফর লুপ
      • হোয়াইল লুপ
      • রেঞ্জ range()
      • enumerate()
      • zip()
  • অধ্যায় ৪ঃ পাইথন কম্প্রিহেনশন্স
    • লিস্ট কম্প্রিহেনশন্স
    • ডিকশনারি কম্প্রিহেনশন্স
    • সেট কম্প্রিহেনশন্স
  • অধ্যায় ৫ঃ ফাংশনাল প্রোগ্রামিং
    • পাইথন ফাংশন্স
    • আর্গুমেন্টস অব ফাংশন্স
      • ডিফল্ট আর্গুমেন্টস
      • রিকোয়ার্ড আর্গুমেন্টস
      • কি-ওয়ার্ড আর্গুমেন্টস
      • ভ্যারিবেল লেনথ আর্গুমেন্টস
    • রিকার্শন ইন পাইথন
Powered by GitBook
On this page

Was this helpful?

  1. অধ্যায় ৫ঃ ফাংশনাল প্রোগ্রামিং

রিকার্শন ইন পাইথন

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

def factorial(n):
    print("factorial function has been called with n = " + str(n))
    if n == 1:
        return 1
    else:
        result = n * factorial(n-1)
        return result
print("Final result %s" %(factorial(5)))

আউটপুটঃ

factorial function has been called with n = 5
factorial function has been called with n = 4
factorial function has been called with n = 3
factorial function has been called with n = 2
factorial function has been called with n = 1
final result 120

এ factorial ফাংশন টি প্রথমে 5 এর জন্য এক্সিকিউট হওয়া শুরু হয় এবং যেহেতু n == 1 নয় তাই প্রোগ্রামটি else স্টেট্মেন্টে ঢুকে। তারপরের লাইনে result কাউন্ট করার সময় factorial ফাংশন নিজেকেই আবার কল করে এবং তখন আর্গুমেন্ট n এর মান হল (n-1)=(5-1)=4 এভাবে একই ভাবে 1 পর্যন্ত এক্সিকিউট করে এবং রেজাল্ট রিটার্ন করে। এখানে আমাদের ফাংশনটি n=1 এর জন্য শেষ হয়েছে। এইকন্ডিশন কে বলা হয় বেজ কন্ডিশন। কোন রিকার্সিব ফাংশনে যদি বেজ কন্ডিশন না থাকে তাহলে ফাংশনটি ইনফাইনাইটলি চলতে থাকবে।

Previousভ্যারিবেল লেনথ আর্গুমেন্টস

Last updated 4 years ago

Was this helpful?