الوظائف#
مقدمة#
تُعدّ الدوال عنصرًا أساسيًا في برمجة بايثون، حيث تُجمّع أجزاءً من التعليمات البرمجية في أقسام قابلة لإعادة الاستخدام وفعّالة، مصممة لأداء مهمة محددة. يمكن استدعاء الدوال عدة مرات داخل البرنامج، مما يُسهّل تنظيم التعليمات البرمجية ويُساعد على تجنّب تكرارها. كما تُسهّل الدوال عملية تصحيح الأخطاء.
هام: تعريف الدالة وحده لا يكفي لتشغيلها. استخدم cte_thread لبدء تشغيل الدالة في سلسلة عمليات جديدة، بحيث تبدأ بالعمل فور بدء المشروع، بدلاً من انتظار حدث أو رد نداء.
defيُعرّف دالة.returnيعيد مخرجات الدالة إلى البرنامج الرئيسي.
طريقة الاستخدام:
def function_name(parameters):
# Code to execute when the function is called
return result # Optional, used to return a value
حدود |
وصف |
|---|---|
|
اسم تطلقه على وظيفتك. |
|
اختياري. متغيرات تقبل قيم الإدخال عند استدعاء الدالة، مما يسمح بتمرير البيانات إلى الدالة. |
|
اختياري. يسمح للدالة بإعادة النتيجة إلى المُستدعي. إذا لم تتضمن الدالة عبارة إرجاع، فستُرجع القيمة |
Note: A function must always be defined before it is called.
تعريف واستدعاء الدوال#
Functions with No Parameters#
إذا لم تتطلب الدالة إدخالاً، فيمكنك تعريفها بدون معلمات.
def greeting():
brain.print("Hello!")
# Call the greeting function
greeting()
Functions with Parameters#
يمكنك أيضًا إضافة معلمات إلى الدوال، مما يسمح لك بتمرير المعلومات التي تحتاجها الدالة للعمل.
def move_square(moves):
for index in range(moves):
arm.move_inc(100, 0, 0)
arm.move_inc(0, 100, 0)
arm.move_inc(-100, 0, 0)
arm.move_inc(0, 100, 0)
# Call the move_square function
move_square(4)
Functions with Default Arguments#
الوسيط الافتراضي هو مُعامل يفترض قيمة افتراضية إذا لم يتم توفير قيمة في استدعاء الدالة لهذا الوسيط.
def move_square(moves=4):
for index in range(moves):
arm.move_inc(100, 0, 0)
arm.move_inc(0, 100, 0)
arm.move_inc(-100, 0, 0)
arm.move_inc(0, 100, 0)
# Call the move_square function
move_square()
Return Values from Functions#
يمكن للدوال إرسال البيانات إلى المُستدعي باستخدام الكلمة المفتاحية return . وهذا يسمح لك بالتقاط المخرجات واستخدامها في برنامجك.
def times_two(number):
return number * 2
# Display the return value
print(times_two(2))
cte_thread#
cte_thread يبدأ دالة في سلسلة رسائل جديدة بحيث تبدأ في العمل فور بدء المشروع.
إذا تم استخدام أكثر من cte_thread واحد، فسيتم تشغيل الوظائف بشكل متزامن.
Usage:
cte_thread(function)
المعلمة |
وصف |
|---|---|
|
اسم دالة تم تعريفها مسبقاً. |
def move_square():
# Move in a square path
while True:
arm.move_inc(100, 0, 0)
arm.move_inc(0, 100, 0)
arm.move_inc(-100, 0, 0)
arm.move_inc(0, 100, 0)
def lights():
# Set the Signal Tower to start blinking the blue LED
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
# Start threads — Do not delete
cte_thread(move_square)
cte_thread(lights)