الدوال في
البايثون Les fonctions python
الدالة هي
سلسلة من التعليمات التي يمكن تسميتها باسم.
إنشاء أول دالة Créer ma première fonction
دعنا ننشئ وظيفة ستعيد عمرا: Créons une fonction qui nous retournera un âge:
>>> def donner_mon_age ():
. . . return
45;
. . .
>>> donner_mon_age ()
45
لا يمكنك نسخ ولصق هذا الرمز ، يجب
عليك إدخال كل سطر يدويا والضغط على Enter للعودة إلى السطر. يتم عرض 3 شيفرون و 3
نقاط بواسطة مترجم الثعبان.
أولا للإشارة إلى المترجم أنك تريد
إنشاء وظيفة ، نستخدم الكلمة الأساسية def متبوعة
باسم ثم أقواس ثم نقطة مزدوجة.
نلاحظ أيضا أن هناك مسافة بين 3 نقاط والكلمة الرئيسية
"return" ، إنها مسافة بادئة ، أي مسافة لا تعمل فقط على تحسين قراءة الوظيفة ولكنها
تشير إلى أننا ما زلنا في الوظيفة. عندما لا يكون الإجراء المطلوب في الدالة ، يجب
عدم وضع مسافة بادئة للنص. لوضع مسافة بادئة للنص ، يجب الضغط على المفتاح TAB على لوحة المفاتيح -
أو في حالات أخرى إنشاء 4 مسافات يدويا-.
البارامترات Les paramètres
دعنا ننشئ وظيفة أخرى:
>>> def augmente__moi (b):
... return
augmente__moi + 5
...
>>> augmente__moi(2)
7
تزداد هذه الدالة بمقدار 5 قيمة يتم تمريرها كمعامل .
من الممكن أيضا استخدام العديد من
المعلمات :
>>> def augmente__moi(r, h):
... return 20
+ r + h
...
>>> augmente__moi(3, 4)
27
إذا كنت قد فهمت مبادئ الوظائف ،
فقد فهمت 80٪ من ماهية البرمجة .
مطلوب معلمة Un paramètre est
obligatoire
عند تحديد معلمات لوظيفة ما ، يجب
ملؤها وإلا ستعطي خطأ .
>>> def augmente__moi(r,
h):
... return 20
+ r + h
...
>>> augmente__moi(5)
Traceback ( most recent call last ):
File
"<stdin>", line 1, in <module>
Type Error: augmente__moi() takes exactly 2 arguments ( 1 given )
المشغل المسطح L'opérateur splat
غالبا ما يستخدم عامل splat: * في
Python.
def ma__function(*var)
def ma__function(**var)
ma__function(*var)
ma__function(**var)
قائمة كمعلمة Une liste en paramètre
يمكنك استرداد القيم التي تم
إدخالها عبر قائمة:
>>> def augmente__moi ( *param ):
... return
param[ 0 ] + param[ 1 ] + param[ 2 ]
...
>>> augmente__moi( 5 , 6, 7)
18
>>> augmente__moi( 100, 200, 300 )
600
جعل معلمات معينة إلزامية فقط مع
قائمة
إذا كنت تريد جعل معلمات معينة فقط
إلزامية ، فيمكنك استخدام بناء الجملة التالي:
>>> def ma__fiche( prenom, nom , *reste ):
... return
prenom + " " + nom
...
>>> ma__fiche(" mimouni " , " rachid
")
' mimouni rachid '
لاحظ أن المعلمة " يبقى " مسبوقة بنجمة * .
استخدام قاموس للإعدادات Utiliser un dictionnaire pour les paramètres
يمكنك استخدام قاموس كمعلمات لهذا
تحتاج إلى إضافة نجمة مزدوجة : **
>>> def ma__fiche( **paramètres ) :
. . . return
parametres[ " prenom " ]
. . .
>>> ma__fiche( prenom = " mimouni "
)
' mimouni '
استخدام قائمة splat في استدعاءات
الوظائف
لنأخذ مثال الدالة augmente__moi:
>>> def augmente__moi( *param ):
... return
param[ 0] + param[ 1] + param[ 2]
...
رأينا أنه من الممكن القيام بذلك:
>>> augmente__moi( 10 , 20 , 40 )
70
استخدام النجم يجعل من الممكن
الاطلاع على قائمة:
>>> test = [10, 20 , 30 ]
>>> augmente__moi( *test )
6
استخدام قاموس splat على مستوى
استدعاء الوظيفة
دعنا نعطي مثالا على هذه الوظيفة :
>>> def test( nom = "", prenom = ""):
... return
"{} {}" .format( nom , prenom)
دعنا ننشئ قامواسنا :
>>> data = {' nom ':' mimouni ', ' prenom ':'
rachid '}
ودعنا نرسل المتغير بنجمة *
>>> test( *test )
' prenom nom '
ثم بنجمتين **
>>> test(**test)
' mimouni rachid '
نطاق المتغيرات (المتغير العام والمتغير المحلي) Portée des variables (variable globale et variable locale)
يظهر المتغير المعلن في جذر الوحدة النمطية في جميع أنحاء تلك الوحدة. وهذا ما
يسمى المتغير العام.
>>> w = " bonjour "
>>> def test():
... print w
...
>>> test()
bonjour
والمتغير المعلن عنه في دالة لن يكون مرئيا إلا في تلك الدالة . وهذا ما يسمى المتغير المحلي .
>>> w = False
>>> def test():
. . . w =
" bonjour "
. . .
>>> test()
>>> w
False
تعليقات
إرسال تعليق