التعامل مع الحلقات والدوال في بايثون

Amine
15/09/2024

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

الحلقات المتداخلة

الحلقة المتداخلة هي حلقة داخل حلقة أخرى. يمكن أن يكون هذا مفيدًا عند التعامل مع البيانات متعددة الأبعاد، مثل الجداول أو الشبكات. على سبيل المثال، إذا كنت تريد طباعة شبكة 3×3 من الأرقام، يمكنك استخدام الحلقات المتداخلة:

for i in range(1, 4):  # Outer loop
    for j in range(1, 4):  # Inner loop
        print(f"({i}, {j})", end=" ")
    print()  # New line after each row

سيؤدي ذلك إلى إخراج:

(1, 1) (1, 2) (1, 3) 
(2, 1) (2, 2) (2, 3) 
(3, 1) (3, 2) (3, 3)

كل تكرار للحلقة الخارجية يشغل الحلقة الداخلية بالكامل قبل الانتقال إلى التكرار التالي للحلقة الخارجية.

الدوال مع معاملات متعددة

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

def greet(name, age):
    print(f"Hello, {name}! You are {age} years old.")

greet("Alice", 30)
greet("Bob", 25)

في هذا المثال، تأخذ دالة greet معاملين، name و age، وتستخدمهما لطباعة رسالة مخصصة.

إرجاع قيم متعددة من دالة

يمكن للدالة أيضًا إرجاع قيم متعددة باستخدام الصفوف (tuples). هذا مفيد عندما تحتاج إلى الحصول على أكثر من نتيجة من الدالة. إليك مثال:

def get_person_info():
    name = "Alice"
    age = 30
    return name, age

person_name, person_age = get_person_info()
print(f"Name: {person_name}, Age: {person_age}")

تُرجع دالة get_person_info قيمتين، والتي يتم تفكيكها بعد ذلك إلى المتغيرين person_name و person_age.

تمارين

التمرين 1

اكتب حلقة متداخلة تطبع شبكة 5×5 من الأرقام، حيث يكون كل رقم هو مجموع مؤشر الصف والعمود.

for i in range(1, 6):
    for j in range(1, 6):
        print(i + j, end=" ")
    print()

التمرين 2

أنشئ دالة تسمى calculate_area تأخذ طول وعرض المستطيل وتعيد المساحة. استخدم هذه الدالة لحساب مساحة مستطيلين مختلفين.

def calculate_area(length, width):
    return length * width

area1 = calculate_area(5, 3)
area2 = calculate_area(7, 2)
print(f"Area 1: {area1}")
print(f"Area 2: {area2}")

التمرين 3

اكتب دالة تسمى min_max تأخذ قائمة من الأرقام وتعيد أصغر وأكبر الأرقام في القائمة.

def min_max(numbers):
    return min(numbers), max(numbers)

numbers = [3, 5, 1, 8, 2]
smallest, largest = min_max(numbers)
print(f"Smallest: {smallest}, Largest: {largest}")

عمل ممتاز! لقد عززت الآن قدرتك على استخدام الحلقات والدوال، مما سيجعل الكود الخاص بك أكثر مرونة وكفاءة. دعنا ننتقل إلى هياكل بيانات أكثر تقدمًا.

التعليقات

اترك تعليقاً