دروس بايثون

بايثون هوم مقدمة بايثون ابدأ بايثون بناء جملة بايثون تعليقات بايثون متغيرات بايثون أنواع بيانات بايثون أرقام بايثون صب بايثون سلاسل بايثون بايثون منطقية مشغلي بايثون قوائم بايثون Python Tuples مجموعات بايثون قواميس بايثون بيثون إذا ... آخر بايثون أثناء التكرار بايثون للحلقات وظائف بايثون بيثون لامدا صفائف بايثون فئات / كائنات بايثون وراثة بايثون تكرارات بايثون نطاق بايثون وحدات بايثون تواريخ بايثون الرياضيات بايثون Python JSON لغة Python RegEx Python PIP بايثون جرب ... ماعدا مدخلات مستخدم بايثون تنسيق سلسلة Python

التعامل مع الملف

التعامل مع ملف بايثون ملفات قراءة بايثون Python كتابة / إنشاء ملفات بايثون حذف الملفات

وحدات بايثون

برنامج NumPy التعليمي تجول الباندا البرنامج التعليمي Scipy

بيثون ماتبلوتليب

مقدمة ماتبلوتليب ابدأ Matplotlib Matplotlib Pyplot ماتبلوتليب بالتآمر علامات Matplotlib خط ماتبلوتليب تسميات Matplotlib شبكة Matplotlib المؤامرات الفرعية Matplotlib مبعثر Matplotlib قضبان ماتبلوتليب الرسوم البيانية Matplotlib المخططات الدائرية Matplotlib

التعلم الالي

ابدء يعني وضع متوسط الانحراف المعياري النسبة المئوية توزيع البيانات توزيع البيانات العادي مؤامرة مبعثر الانحدارالخطي الانحدار متعدد الحدود الانحدار المتعدد حجم تدريب / اختبار شجرة القرار

Python MySQL

ابدأ MySQL MySQL إنشاء قاعدة بيانات إنشاء جدول MySQL إدراج MySQL حدد MySQL MySQL أين ترتيب MySQL حسب حذف MySQL جدول إسقاط MySQL تحديث MySQL حد MySQL انضم إلى MySQL

Python MongoDB

ابدأ MongoDB MongoDB إنشاء قاعدة بيانات MongoDB إنشاء مجموعة إدراج MongoDB البحث عن MongoDB استعلام MongoDB نوع MongoDB MongoDB يحذف مجموعة MongoDB Drop تحديث MongoDB حد MongoDB

مرجع بايثون

نظرة عامة على بايثون وظائف بايثون المضمنة طرق سلسلة بايثون طرق قائمة بايثون طرق قاموس بايثون طرق Python Tuple طرق تعيين بايثون طرق ملف بايثون كلمات بايثون استثناءات بايثون مسرد بايثون

مرجع الوحدة

وحدة عشوائية وحدة الطلبات وحدة الإحصاء وحدة الرياضيات وحدة cMath

كيف بايثون

إزالة قائمة التكرارات عكس سلسلة أضف عددين

أمثلة بايثون

أمثلة بايثون مترجم بايثون تمارين بايثون مسابقة بايثون شهادة بايثون

وظائف بايثون


الوظيفة عبارة عن كتلة من التعليمات البرمجية يتم تشغيلها فقط عند استدعائها.

يمكنك تمرير البيانات ، المعروفة باسم المعلمات ، إلى دالة.

يمكن للدالة إرجاع البيانات كنتيجة.


خلق وظيفة

في Python ، يتم تحديد الوظيفة باستخدام الكلمة الأساسية def :

مثال

def my_function():
  print("Hello from a function")

استدعاء وظيفة

لاستدعاء دالة ، استخدم اسم الدالة متبوعًا بقوس:

مثال

def my_function():
  print("Hello from a function")

my_function()

الحجج

يمكن تمرير المعلومات إلى وظائف كوسائط.

يتم تحديد الوسيطات بعد اسم الوظيفة ، داخل الأقواس. يمكنك إضافة العديد من الوسائط كما تريد ، فقط افصل بينها بفاصلة.

المثال التالي له دالة ذات وسيطة واحدة (fname). عندما يتم استدعاء الوظيفة ، نقوم بتمرير الاسم الأول ، والذي يتم استخدامه داخل الوظيفة لطباعة الاسم الكامل:

مثال

def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

غالبًا ما يتم اختصار الحجج إلى args في وثائق Python.



معلمات أم حجج؟

يمكن استخدام المعلمة والوسيطة المصطلحين لنفس الشيء: المعلومات التي يتم تمريرها إلى دالة .

من منظور الوظيفة:

المعلمة هي المتغير المدرج داخل الأقواس في تعريف الوظيفة.

الوسيطة هي القيمة التي يتم إرسالها إلى الوظيفة عندما يتم استدعاؤها.


عدد الحجج

بشكل افتراضي ، يجب استدعاء الدالة بالعدد الصحيح من الوسائط. بمعنى أنه إذا كانت وظيفتك تتوقع وسيطتين ، فعليك استدعاء الدالة باستخدام وسيطتين ، وليس أكثر وليس أقل.

مثال

تتوقع هذه الوظيفة وسيطتين ، وتحصل على وسيطتين:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil", "Refsnes")
إذا حاولت استدعاء الدالة باستخدام 1 أو 3 وسيطات ، فستتلقى خطأ:

مثال

تتوقع هذه الوظيفة وسيطتين ، ولكنها تحصل على وسيط واحد فقط:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil")

الحجج التعسفية * حجج

إذا كنت لا تعرف عدد الوسائط التي سيتم تمريرها إلى وظيفتك ، فقم بإضافة *قبل اسم المعلمة في تعريف الوظيفة.

بهذه الطريقة ستتلقى الوظيفة مجموعة من المعطيات ، ويمكنها الوصول إلى العناصر وفقًا لذلك:

مثال

إذا كان عدد الوسائط غير معروف ، أضف a *قبل اسم المعلمة:

def my_function(*kids):
  print("The youngest child is " + kids[2])

my_function("Emil", "Tobias", "Linus")

غالبًا ما يتم اختصار الحجج التعسفية إلى * args في وثائق Python.


وسيطات الكلمات الرئيسية

يمكنك أيضًا إرسال وسيطات باستخدام key = value syntax.

بهذه الطريقة لا يهم ترتيب الحجج.

مثال

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")

غالبًا ما يتم اختصار عبارة Keyword Arguments إلى kwargs في وثائق Python.


وسيطات الكلمات الرئيسية التعسفية ، ** kwargs

إذا كنت لا تعرف عدد وسيطات الكلمات الأساسية التي سيتم تمريرها إلى وظيفتك ، فقم بإضافة علامتين نجميتين: **قبل اسم المعلمة في تعريف الوظيفة.

بهذه الطريقة ستتلقى الوظيفة قاموسًا للوسائط ، ويمكنها الوصول إلى العناصر وفقًا لذلك:

مثال

إذا كان عدد وسيطات الكلمات الرئيسية غير معروف ، فقم بإضافة ضعف **قبل اسم المعلمة:

def my_function(**kid):
  print("His last name is " + kid["lname"])

my_function(fname = "Tobias", lname = "Refsnes")

غالبًا ما يتم اختصار وسيطات الكلمات التعسفية إلى ** kwargs في وثائق Python.


قيمة المعلمة الافتراضية

يوضح المثال التالي كيفية استخدام قيمة معلمة افتراضية.

إذا استدعينا الدالة بدون وسيطة ، فإنها تستخدم القيمة الافتراضية:

مثال

def my_function(country = "Norway"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

تمرير قائمة كوسيلة

يمكنك إرسال أي أنواع بيانات من الوسيطات إلى دالة (سلسلة ، رقم ، قائمة ، قاموس ، إلخ) ، وسيتم التعامل معها على أنها نفس نوع البيانات داخل الوظيفة.

على سبيل المثال ، إذا أرسلت قائمة كوسيطة ، فستظل قائمة عندما تصل إلى الوظيفة:

مثال

def my_function(food):
  for x in food:
    print(x)

fruits = ["apple", "banana", "cherry"]

my_function(fruits)

إرجاع القيم

للسماح للدالة بإرجاع قيمة ، استخدم return العبارة:

مثال

def my_function(x):
  return 5 * x

print(my_function(3))
print(my_function(5))
print(my_function(9))

بيان التمرير

functionfunctionلا يمكن أن تكون التعريفات فارغة ، ولكن إذا كان لديك تعريف بدون محتوى لسبب ما ، فضعه في passالعبارة لتجنب حدوث خطأ.

مثال

def myfunction():
  pass

العودية

تقبل Python أيضًا تكرار الوظيفة ، مما يعني أن الوظيفة المحددة يمكنها استدعاء نفسها.

التكرار هو مفهوم رياضي وبرمجي شائع. هذا يعني أن الوظيفة تستدعي نفسها. هذا له فائدة بمعنى أنه يمكنك تكرار البيانات للوصول إلى نتيجة.

يجب أن يكون المطور حريصًا جدًا في التعامل مع العودية حيث يمكن أن يكون من السهل جدًا الانزلاق إلى كتابة وظيفة لا تنتهي أبدًا ، أو وظيفة تستخدم كميات زائدة من الذاكرة أو طاقة المعالج. ومع ذلك ، عند كتابة العودية بشكل صحيح ، يمكن أن تكون طريقة فعالة للغاية وأنيقة من الناحية الحسابية للبرمجة.

في هذا المثال ، tri_recursion () هي دالة قمنا بتعريفها لتسمي نفسها ("recurse"). نستخدم المتغير k على أنها البيانات ، والتي تنخفض ( -1 ) في كل مرة نتكرر فيها. ينتهي العودية عندما لا يكون الشرط أكبر من 0 (أي عندما يكون 0).

بالنسبة للمطور الجديد ، قد يستغرق الأمر بعض الوقت لمعرفة كيفية عمل ذلك بالضبط ، وأفضل طريقة لمعرفة ذلك هي اختباره وتعديله.

مثال

مثال العودية

def tri_recursion(k):
  if(k > 0):
    result = k + tri_recursion(k - 1)
    print(result)
  else:
    result = 0
  return result

print("\n\nRecursion Example Results")
tri_recursion(6)

اختبر نفسك مع التمارين

ممارسه الرياضه:

قم بإنشاء دالة باسم my_function.

:
  print("Hello from a function")