في هذا الدرس من سلسلة بايثون بالمثال سنتعلم كيف نوجد أكبر رقم وأصغر رقم داخل قائمة List في Python بطريقة سهلة ومباشرة.
هذا المثال مهم جدًا للمبتدئين في تعلم بايثون، لأنك ستحتاجه كثيرًا عند التعامل مع الدرجات، الأسعار، الإحصائيات، النتائج، أو أي قائمة تحتوي على أرقام.
سنبدأ بالطريقة الأسهل باستخدام الدوال الجاهزة max() و min()، ثم نشرح طريقة الحل باستخدام for loop حتى تفهم كيف تتم المقارنة خطوة بخطوة.
{getToc} $title={محتوى المقال}
{alertInfo} هذا المثال مناسب لك إذا تعلمت Lists و for loop وتريد تطبيقًا عمليًا يساعدك على فهم التعامل مع الأرقام داخل القوائم.
فكرة المثال
لدينا قائمة أرقام مثل هذه:
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 ببساطة
الدالة 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
إيجاد أكبر وأصغر رقم معًا باستخدام 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]
بهذا تتجنب مشاكل القيم العشوائية أو القيم غير المناسبة.
تمرين بسيط
اكتب برنامجًا يحتوي على قائمة أسعار، ثم اطبع أعلى سعر وأقل سعر.
مثال:
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؟
غالبًا لأن القائمة فارغة، أو لأن عناصر القائمة ليست من نفس النوع.
روابط مهمة من بايثون العرب
- شرح Lists في Python للمبتدئين
- شرح Loops في Python للمبتدئين
- بايثون بالمثال: حساب مجموع عناصر List في Python
مصدر خارجي مفيد
يمكنك قراءة توثيق Python الرسمي حول الدوال الجاهزة من هنا: Python Documentation - max
خلاصة المقال
في هذا الدرس تعلمنا طريقة إيجاد أكبر وأصغر رقم في List باستخدام Python.
استخدمنا الدوال الجاهزة max() و min() لأنها الأسهل والأسرع، ثم شرحنا طريقة الحل باستخدام for loop لفهم المقارنة خطوة بخطوة.
إذا كنت تريد تعلم بايثون بالعربي بطريقة عملية، فحاول تغيير الأرقام داخل القائمة، ثم جرّب كتابة الحل باستخدام الدوال الجاهزة مرة، وباستخدام الحلقة مرة أخرى.
{alertSuccess} أفضل طريقة لفهم أمثلة بايثون هي أن تشغل الكود، تغيّر القيم، وتراقب كيف تتغير النتيجة.