الانتقال إلى المحتوى الرئيسي
الوحدة 5 · الدرس 1 من 417/36 في الدورة~12 min
دروس الوحدة (1/4)

مواطنه والعودة

الوظيفة عبارة عن كتلة من التعليمات البرمجية قابلة لإعادة الاستخدام: يمكنك تعريفها مرة واحدة باستخدام 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"

قيم متعددة؟ إرجاع صف

ليس لدى بايثون "معلمات خارجية": لإرجاع أكثر من شيء واحد، قم بإرجاع a صفصاف (غالبًا ما يتم تفكيكه بواسطة المتصل).

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

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

Docstring: وثائق مدمجة

السلسلة الأولى داخل الوظيفة هي docstring: تظهر فيها help(fn) وكتلميح أداة في IDEs.

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

تقوم الوظائف دائمًا بإرجاع شيء ما

في Python، إذا لم تعلن الدالة بشكل صريح عن عبارة return أو تحتوي على return فارغة، فسوف تُرجع ضمنيًا القيمة الخاصة None. لا توجد وظائف لا ترجع قيمة.

جربه

تمرين#python.m5.l1.e1
المحاولات: 0جارٍ التحميل…

حدد دالة `double(x)` تُرجع `x * 2`. ثم اتصل بها بالرقم 7 وقم بتعيين النتيجة إلى "نتيجة". تقييم "النتيجة".

جارٍ تحميل المحرر…
إظهار التلميح

استخدم الإرجاع × * 2.

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#python.m5.l1.e2
المحاولات: 0جارٍ التحميل…

حدد `min_max(nums)` الذي يُرجع صفًا `(الحد الأدنى والحد الأقصى)`. اتصل بها على `[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("radar")\` كتعبير أخير.

جارٍ تحميل المحرر…
إظهار التلميح

استخدم تقطيع النص[::-1] لعكس السلسلة ومقارنتها بالنص الأصلي.

الحل متاح بعد 3 من المحاولات