মূল কন্টেন্টে যান
মডিউল 5 · 1-এর পাঠ 4কোর্সে 17/36~12 min
মডিউল পাঠ (1/4)

def এবং ফিরে যান

একটি ফাংশন কোডের একটি পুনঃব্যবহারযোগ্য ব্লক: আপনি এটিকে একবার def দিয়ে সংজ্ঞায়িত করুন, তারপর যতবার ইচ্ছা কল করুন। ফাংশন কোড মডুলার করে, পরীক্ষাযোগ্য, এবং স্ব-ডকুমেন্টিং।

মৌলিক সিনট্যাক্স

Python
def saluta(nome):
    return f"Ciao, {nome}!"

saluta("Ada")     # 'Ciao, Ada!'
  • def ফাংশনটি প্রবর্তন করে, এর পরে নাম এবং পরামিতিগুলি বন্ধনী
  • : ইন্ডেন্টেড ব্লক খোলে।
  • return কলারকে একটি মান ফেরত পাঠায় এবং ফাংশনটি শেষ করে।

স্পষ্ট return বনাম অন্তর্নিহিত None

আপনি যদি return না লেখেন, ফাংশনটি None প্রত্যক্ষ করে:

Python
def stampa_e_basta(x):
    print(x)

risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato)   # None

একটি খালি return (কোনও মান নেই) এছাড়াও None ফেরত দেয়, তবে এটি প্রাথমিক হিসাবে পরিবেশন করতে পারে প্রস্থান:

Python
def primo_pari(nums):
    for n in nums:
        if n % 2 == 0:
            return n
    return None   # explicit: communicates "not found"

একাধিক মান? একটি tuple ফেরত

পাইথনের কোন "আউট প্যারামিটার" নেই: একাধিক জিনিস ফেরত দিতে, একটি রিটার্ন করুন tuple (প্রায়শই কলার দ্বারা আনপ্যাক করা হয়)

Python
def divisione_resto(a, b):
    return a // b, a % b

quoziente, resto = divisione_resto(17, 5)
# 3, 2

ডকস্ট্রিং: অন্তর্নির্মিত ডকুমেন্টেশন

ফাংশনের ভিতরের প্রথম স্ট্রিংটি হল ডকস্ট্রিং: এটি দেখায় help(fn) এবং IDE-তে টুলটিপ হিসাবে।

Python
def area_cerchio(raggio):
    """Calcola l'area di un cerchio dato il raggio."""
    import math
    return math.pi * raggio ** 2

সুযোগ: স্থানীয় ভেরিয়েবল

একটি ফাংশনের ভিতরে সংজ্ঞায়িত ভেরিয়েবলগুলি হল স্থানীয়: সেগুলি বিদ্যমান নেই৷ বাইরে

Python
def f():
    x = 10
    return x

f()    # 10
x      # NameError: name 'x' is not defined

ফাংশন সবসময় কিছু ফেরত দেয়

পাইথনে, যদি একটি ফাংশন স্পষ্টভাবে একটি return স্টেটমেন্ট ঘোষণা না করে বা একটি খালি return ফিচার না করে, তাহলে এটি স্পষ্টভাবে বিশেষ মান None প্রদান করবে। এমন কোন ফাংশন নেই যা একটি মান ফেরত দেয় না।

চেষ্টা করে দেখুন

ব্যায়াম#python.m5.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

একটি ফাংশন `ডবল(x)` সংজ্ঞায়িত করুন যা `x * 2` প্রদান করে। তারপর এটিকে 7 দিয়ে কল করুন এবং ফলাফলটিকে `ফলাফল`-এ বরাদ্দ করুন। `ফলাফল` মূল্যায়ন করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

রিটার্ন x * 2 ব্যবহার করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম পর্যালোচনা করুন

ব্যায়াম#python.m5.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

`মিনিমাম_সর্বোচ্চ (সংখ্যা)` সংজ্ঞায়িত করুন যা একটি টিপল প্রদান করে `(সর্বাধিক, সর্বনিম্ন)`। এটিকে `[3, 1, 4, 1, 5, 9, 2, 6]` এ কল করুন এবং ফলাফলটিকে `mn, mx`-এ আনপ্যাক করুন। `(mn, mx)` মূল্যায়ন করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

রিটার্ন মিন (সংখ্যা), সর্বোচ্চ (সংখ্যা)

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

অতিরিক্ত চ্যালেঞ্জ

ব্যায়াম#python.m5.l1.e3
প্রচেষ্টা: 0লোড হচ্ছে...

একটি ফাংশন সংজ্ঞায়িত করুন \`is_palindrome(text)\` যা ইনপুট স্ট্রিং তার বিপরীত সংস্করণের সমান হলে \`True\` প্রদান করে এবং অন্যথায় \`False\`। শেষ অভিব্যক্তি হিসাবে \`is_palindrome("রাডার")\` দিয়ে ফাংশনটি পরীক্ষা করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

স্লাইসিং টেক্সট ব্যবহার করুন [::-1] স্ট্রিংটি বিপরীত করতে এবং মূল পাঠ্যের সাথে তুলনা করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ