كنت اريد ان اعرف تجربتكم مع الدرس الخاص بدالة داخل دالة اخرى
لاني لم استطيع فهم هذا الدرس و كيفية جعل دالة تتواصل مع دالة اخرى
كنت اريد ان اعرف تجربتكم مع الدرس الخاص بدالة داخل دالة اخرى
لاني لم استطيع فهم هذا الدرس و كيفية جعل دالة تتواصل مع دالة اخرى
ما هو سؤالك…مالذي لم تفهمه؟؟
اجد صعوبة في جعل الدوال تتواصل معا
جرب هذا الشرح؟؟
في بايثون، يمكن للدوال أن تتواصل مع بعضها من خلال تمرير القيم (parameters) أو إرجاع القيم (return values).
لدينا دالة تحسب مربع رقم، ودالة أخرى تستخدم نتيجة الدالة الأولى لطباعة النتيجة.
# Function to calculate the square of a number
def calculate_square(number):
return number ** 2 # Return the square of the number
# Function to print the square of a number
def print_square(number):
result = calculate_square(number) # Call the first function and get the result
print(f"The square of {number} is {result}")
# Calling the second function
print_square(5)
calculate_square(number)
: تأخذ رقمًا وتحسب مربعه ثم تعيده.print_square(number)
:
calculate_square(number)
للحصول على مربع الرقم.print
.print_square(5)
، يتم تنفيذ العمليات بالترتيب الصحيح.The square of 5 is 25
بهذه الطريقة، يمكن للدوال أن تتواصل مع بعضها بسهولة عبر تمرير القيم واسترجاع النتائج! هل لديك أي استفسار إضافي؟
شكرا جزيلا على المساعدة
تواصل الدوال مع بعضها له عدة أهداف سأحاول الشرح حسب فهمي وأتمنى أن يفيدك
يمكنك استخدام تواصل الدوال مع بعضها لأجل أن توفر على نفسك أسطر وكذلك توفر على نفسك تذكر تفاصيل صغيرة في الكود
مثلا عندك مشروع مكتبة
قمت بعمل دالة (function) لحذف الشاشة
ودالة أخرى لأجل عرض الخيارات
ودالة ثانية إذا اختار المستخدم 1
ودالة ثالثة إذا اختار المستخدم 2
ودالة رابعة إذا اختار المستخدم 3
import os
def clear_screen():
os.system('cls' if os.name == 'nt' else 'clear')
def app_choices():
print("Welcome to your library!\n")
print("What do you want to do?")
print("1. Add a book")
print("2. Remove a book")
print("3. Display all books")
print("4. Exit")
def add_book():
input("Add book ")
def remove_book():
input("Remove book ")
def display_all_books():
input("Display all books ")
ثم قمت بعمل while loop لأجل أن يظل البرنامج يعمل حتى يختار المستخدم الخروج
الآن انت ستقوم باستدعاء دالة الخيارات ثم تضع input للمستخدم ليختار ثم if لكل اختيار تعرض الدالة الخاصة به وقبل كل دالة تكتب الدالة الخاصة بحذف الشاشة
while True:
clear_screen()
app_choices()
user_choice = input("\nEnter your choice: ")
if user_choice == '1':
clear_screen()
add_book()
elif user_choice == '2':
clear_screen()
remove_book()
elif user_choice == '3':
clear_screen()
display_all_books()
elif user_choice == '4':
print("\nExiting the program...\n")
break
else:
input("\nInvalid Choice! ")
ولكن هذا مثال بسيط فماذا لو عندك مشروع كبير وفيه الكثير من الدوال مثلا مائة دالة وستقوم بالاستدعاء منهم ألف مرة فهل ستستدعي دالة الحذف أيضا ألف مرة؟
ألن يكون الأفضل أن تجعل كل دالة تحذف الشاشة تلقائيا عند بدايتها فتكون كتبت دالة حذف الشاشة مائة مرة فقط وتوفر على نفسك 900 سطر؟
فهذا من فوائد تواصل الدوال مع بعضها وإذا قمنا بتعديل الكود البسيط الذي كتبناه في الأعلى يصبح هكذا
def app_choices():
clear_screen()
print("Welcome to your library!\n")
print("What do you want to do?")
print("1. Add a book")
print("2. Remove a book")
print("3. Display all books")
print("4. Exit")
def add_book():
clear_screen()
input("Add book ")
def remove_book():
clear_screen()
input("Remove book ")
def display_all_books():
clear_screen()
input("Display all books ")
while True:
app_choices()
user_choice = input("\nEnter your choice: ")
if user_choice == '1':
add_book()
elif user_choice == '2':
remove_book()
elif user_choice == '3':
display_all_books()
elif user_choice == '4':
print("\nExiting the program...\n")
break
else:
input("\nInvalid Choice! ")
وهكذا انت جعلت الدوال تتواصل مع بعضها حينما جعلت دالة حذف الشاشة داخل دالة أخرى
وهناك هدف آخر من استخدام تواصل الدوال وهو جعل الكود نظيف أي واضح ومنظم وسهل القراءة والتعديل فيما بعد
فمثلا عندك دالة ولنفترض ان اسمها write (اكتب) وهذه الدالة وظيفتها أن تكتب رسالة ولكن لكي تكتب هذه الرسالة تحتاج pen (قلم) و ink (حبر) وكل منهما يحتاج عمليات كثيرة لأجل تصنيعه
فإذا كتبت كل الأكواد الخاصة بتصنيع القلم والحبر داخل دالة الكتابة سيكون الكود صعب القراءة والتعديل ولكن إذا انشأت دالة خاصة بتصنيع القلم ودالة أخرى خاصة بتصنيع الحبر ثم استدعيتهم داخل دالة الكتابة يصبح الكود أكثر تنظيما وأسهل للقراءة والتعديل
هذا مثال تخيلي مبسط جدا للكود
def make_ink():
return "Red Ink"
def make_pen():
return "Cool Pen"
def write():
given_ink = make_ink()
given_pen = make_pen()
write_something = f"{given_ink} + {given_pen} = Extra Cool Message"
print(write_something)
write()
النتيجة عند التشغيل
Red Ink + Cool Pen = Extra Cool Message
أتمنى أن يكون الشرح مفيدا وسهلا وبالتوفيق
مثلما قلت عن حذف الردود والموضوعات
حتى الموضوع الذي نشرتهِ عن المشكلة تم حذفه
لابد أنه مدير المنتدى فهذا الموقع مطور من مايكروسوفت وليس من تطوير الاستاذ ليتم اختراقه