القائمة الرئيسية

الصفحات

الدوال في البايثون 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



الصفحة الرئيسية >>االإجراء والوظائف    Procédure et fonctions

تعليقات