بايثون بالمثال 5: إيجاد أكبر وأصغر رقم في List باستخدام Python

بايثون بالمثال 5: إيجاد أكبر وأصغر رقم في List باستخدام Python

في هذا الدرس من سلسلة بايثون بالمثال سنتعلم كيف نوجد أكبر رقم وأصغر رقم داخل قائمة List في Python بطريقة سهلة ومباشرة.

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

سنبدأ بالطريقة الأسهل باستخدام الدوال الجاهزة max() و min()، ثم نشرح طريقة الحل باستخدام for loop حتى تفهم كيف تتم المقارنة خطوة بخطوة.

{getToc} $title={محتوى المقال}

{alertInfo} هذا المثال مناسب لك إذا تعلمت Lists و for loop وتريد تطبيقًا عمليًا يساعدك على فهم التعامل مع الأرقام داخل القوائم.

قائمة أرقام في Python مع تمييز أكبر رقم وأصغر رقم داخل List

فكرة المثال

لدينا قائمة أرقام مثل هذه:

numbers = [15, 8, 23, 4, 42, 16]

ونريد معرفة:

  • ما هو أكبر رقم داخل القائمة؟
  • ما هو أصغر رقم داخل القائمة؟

في هذا المثال، أكبر رقم هو 42، وأصغر رقم هو 4.

الطريقة الأولى: استخدام max و min في Python

أسهل طريقة لإيجاد أكبر وأصغر رقم في قائمة هي استخدام الدالتين الجاهزتين:

  • max() لإيجاد أكبر قيمة.
  • min() لإيجاد أصغر قيمة.
numbers = [15, 8, 23, 4, 42, 16]

largest = max(numbers)
smallest = min(numbers)

print("Largest number:", largest)
print("Smallest number:", smallest)

الناتج:

Largest number: 42
Smallest number: 4
{alertSuccess} إذا كانت القائمة تحتوي على أرقام فقط، فالدالتان max و min هما أسهل حل لإيجاد أكبر وأصغر قيمة.

شرح دوال max و min في Python لاختيار أكبر وأصغر قيمة من List

شرح max و min ببساطة

الدالة max() تمر على عناصر القائمة وتبحث عن أعلى قيمة موجودة.

أما الدالة min() فتبحث عن أقل قيمة موجودة.

مثال مختصر:

grades = [80, 95, 67, 88]

print(max(grades))
print(min(grades))

الناتج:

95
67

الطريقة الثانية: إيجاد أكبر رقم باستخدام for loop

رغم أن max() سهلة جدًا، لكن من المهم أن تعرف كيف يمكن إيجاد أكبر رقم يدويًا باستخدام حلقة for.

numbers = [15, 8, 23, 4, 42, 16]

largest = numbers[0]

for number in numbers:
    if number > largest:
        largest = number

print(largest)

الناتج:

42

شرح كود إيجاد أكبر رقم خطوة بخطوة

بدأنا بتخزين أول عنصر من القائمة داخل المتغير largest:

largest = numbers[0]

ثم مررنا على كل رقم داخل القائمة:

for number in numbers:

وفي كل مرة نسأل: هل الرقم الحالي أكبر من القيمة المخزنة داخل largest؟

if number > largest:
    largest = number

إذا كان الرقم أكبر، نقوم بتحديث قيمة largest.

الطريقة الثالثة: إيجاد أصغر رقم باستخدام for loop

نفس الفكرة يمكن استخدامها لإيجاد أصغر رقم، لكن بدل استخدام علامة أكبر من > نستخدم علامة أصغر من <.

numbers = [15, 8, 23, 4, 42, 16]

smallest = numbers[0]

for number in numbers:
    if number < smallest:
        smallest = number

print(smallest)

الناتج:

4
إيجاد أكبر وأصغر رقم في List باستخدام for loop في Python خطوة بخطوة

إيجاد أكبر وأصغر رقم معًا باستخدام for loop

يمكننا إيجاد أكبر رقم وأصغر رقم في نفس الحلقة بدل استخدام حلقتين منفصلتين.

numbers = [15, 8, 23, 4, 42, 16]

largest = numbers[0]
smallest = numbers[0]

for number in numbers:
    if number > largest:
        largest = number

    if number < smallest:
        smallest = number

print("Largest:", largest)
print("Smallest:", smallest)

الناتج:

Largest: 42
Smallest: 4
{alertInfo} استخدام for loop يساعدك على فهم طريقة عمل max و min من الداخل، حتى لو كنت ستستخدم الدوال الجاهزة لاحقًا.


الفرق بين استخدام max و min واستخدام for loop

الطريقة متى تستخدمها؟ مناسبتها للمبتدئ
max() و min() عندما تريد الحل الأسرع والمباشر سهلة جدًا
for loop عندما تريد فهم المقارنة خطوة بخطوة مهمة للتعلم

مثال عملي: أكبر وأصغر درجة

لنفترض أن لدينا قائمة درجات طلاب ونريد معرفة أعلى درجة وأقل درجة.

grades = [78, 92, 85, 60, 99]

highest = max(grades)
lowest = min(grades)

print("Highest grade:", highest)
print("Lowest grade:", lowest)

الناتج:

Highest grade: 99
Lowest grade: 60

ماذا يحدث إذا كانت القائمة فارغة؟

إذا استخدمت max() أو min() مع قائمة فارغة، سيظهر خطأ.

numbers = []

print(max(numbers))

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

الحل الأفضل هو التحقق من القائمة قبل استخدام max() أو min().

numbers = []

if numbers:
    print(max(numbers))
    print(min(numbers))
else:
    print("The list is empty")
{alertWarning} قبل استخدام max أو min، تأكد أن القائمة ليست فارغة حتى لا يظهر خطأ أثناء تشغيل البرنامج.


أخطاء شائعة عند إيجاد أكبر وأصغر رقم

1. استخدام max أو min على قائمة فارغة

القائمة الفارغة لا تحتوي على قيم، لذلك لا يمكن إيجاد أكبر أو أصغر قيمة منها.

2. وجود نصوص داخل قائمة الأرقام

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

numbers = [10, "20", 5]

الأفضل أن تكون كل العناصر من نفس النوع.

3. البدء بقيمة عشوائية بدل أول عنصر

عند استخدام for loop، الأفضل أن تبدأ أكبر وأصغر قيمة من أول عنصر في القائمة:

largest = numbers[0]
smallest = numbers[0]

بهذا تتجنب مشاكل القيم العشوائية أو القيم غير المناسبة.

ملخص طرق إيجاد أكبر وأصغر رقم في List باستخدام max و min و for loop

تمرين بسيط

اكتب برنامجًا يحتوي على قائمة أسعار، ثم اطبع أعلى سعر وأقل سعر.

مثال:

prices = [120, 75, 300, 45]

highest_price = max(prices)
lowest_price = min(prices)

print("Highest price:", highest_price)
print("Lowest price:", lowest_price)

الناتج:

Highest price: 300
Lowest price: 45

أسئلة شائعة

كيف أجد أكبر رقم في List باستخدام Python؟

يمكنك استخدام الدالة max():

max(numbers)

كيف أجد أصغر رقم في List؟

يمكنك استخدام الدالة min():

min(numbers)

هل يمكن إيجاد أكبر وأصغر رقم بدون max و min؟

نعم، يمكنك استخدام for loop والمقارنة بين كل عنصر والقيمة الحالية.

لماذا يظهر خطأ مع max أو min؟

غالبًا لأن القائمة فارغة، أو لأن عناصر القائمة ليست من نفس النوع.

روابط مهمة من بايثون العرب

مصدر خارجي مفيد

يمكنك قراءة توثيق Python الرسمي حول الدوال الجاهزة من هنا: Python Documentation - max

خلاصة المقال

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

استخدمنا الدوال الجاهزة max() و min() لأنها الأسهل والأسرع، ثم شرحنا طريقة الحل باستخدام for loop لفهم المقارنة خطوة بخطوة.

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

{alertSuccess} أفضل طريقة لفهم أمثلة بايثون هي أن تشغل الكود، تغيّر القيم، وتراقب كيف تتغير النتيجة.

إرسال تعليق

أحدث أقدم