دروس الوحدة (1/4)
مواطنه والعودة
الوظيفة عبارة عن كتلة من التعليمات البرمجية قابلة لإعادة الاستخدام: يمكنك تعريفها مرة واحدة باستخدام def،
ثم نسميها عدة مرات كما تريد. وظائف تجعل التعليمات البرمجية وحدات،
قابلة للاختبار والتوثيق الذاتي.
بناء الجملة الأساسي
def saluta(nome):
return f"Ciao, {nome}!"
saluta("Ada") # 'Ciao, Ada!'defيقدم الوظيفة، متبوعة بالاسم والمعلمات الموجودة بين قوسين.- يفتح
:الكتلة ذات المسافة البادئة. returnيرسل قيمة مرة أخرى إلى المتصل وينهي الوظيفة.
الصريح return مقابل الضمني None
إذا لم تكتب return، فسترجع الدالة None ضمنيًا:
def stampa_e_basta(x):
print(x)
risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato) # Nonereturn (بلا قيمة) يُرجع أيضًا None، ولكن يمكن أن يكون بمثابة بداية مبكرة
خروج:
def primo_pari(nums):
for n in nums:
if n % 2 == 0:
return n
return None # explicit: communicates "not found"قيم متعددة؟ إرجاع صف
ليس لدى بايثون "معلمات خارجية": لإرجاع أكثر من شيء واحد، قم بإرجاع a صفصاف (غالبًا ما يتم تفكيكه بواسطة المتصل).
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2Docstring: وثائق مدمجة
السلسلة الأولى داخل الوظيفة هي docstring: تظهر فيها
help(fn) وكتلميح أداة في IDEs.
def area_cerchio(raggio):
"""Calcola l'area di un cerchio dato il raggio."""
import math
return math.pi * raggio ** 2النطاق: المتغيرات المحلية
المتغيرات المحددة داخل الدالة هي محلية: وهي غير موجودة خارج.
def f():
x = 10
return x
f() # 10
x # NameError: name 'x' is not definedتقوم الوظائف دائمًا بإرجاع شيء ما
في Python، إذا لم تعلن الدالة بشكل صريح عن عبارة return أو تحتوي على return فارغة، فسوف تُرجع ضمنيًا القيمة الخاصة None. لا توجد وظائف لا ترجع قيمة.
جربه
حدد دالة `double(x)` تُرجع `x * 2`. ثم اتصل بها بالرقم 7 وقم بتعيين النتيجة إلى "نتيجة". تقييم "النتيجة".
إظهار التلميح
استخدم الإرجاع × * 2.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
حدد `min_max(nums)` الذي يُرجع صفًا `(الحد الأدنى والحد الأقصى)`. اتصل بها على `[3، 1، 4، 1، 5، 9، 2، 6]` وقم بفك ضغط النتيجة في `mn، mx`. قم بتقييم `(mn, mx)`.
إظهار التلميح
الحد الأدنى (الأعداد)، الحد الأقصى (الأعداد)
الحل متاح بعد 3 من المحاولات
التحدي الإضافي
حدد دالة \`is_palindrome(text)\` تقوم بإرجاع \`True\` إذا كانت سلسلة الإدخال مساوية لنسختها المعكوسة، و\`False\` بخلاف ذلك. اختبر الدالة باستخدام \`is_palindrome("radar")\` كتعبير أخير.
إظهار التلميح
استخدم تقطيع النص[::-1] لعكس السلسلة ومقارنتها بالنص الأصلي.
الحل متاح بعد 3 من المحاولات