لطباعة الأعداد الفردية في Python داخل نطاق نمر على الأعداد الصحيحة ونختبر باقي قسمتها على 2. يختص هذا الدرس بإنتاج قائمة أعداد بين حدين؛ أما معرفة نوع عدد واحد فلها درس مستقل. ندعم الحدود السالبة ونعد حد النهاية جزءًا من المجال.
الكود الكامل باستخدام Python 3
def odd_numbers(start, end):
if start > end:
raise ValueError("Start must not exceed end.")
return [number for number in range(start, end + 1) if number % 2 != 0]
if __name__ == "__main__":
try:
start = int(input("Start: "))
end = int(input("End: "))
print(*odd_numbers(start, end))
except ValueError as error:
print("Invalid input:", error)شرط العدد الفردي
العدد الفردي لا يقبل القسمة على 2 دون باق. نستخدم number % 2 != 0 حتى يعمل الفحص مع الأعداد السالبة أيضًا. النطاق من -3 إلى 3 ينتج -3 و-1 و1 و3، ولا يحتوي الصفر لأنه زوجي.
لماذا نضيف 1 إلى النهاية؟
لا تشمل range حد التوقف. نكتب end + 1 لنضمن إدخال نهاية المجال إذا كانت فردية. النطاق من 1 إلى 10 ينتج 1 و3 و5 و7 و9، أما من 2 إلى 2 فلا يحتوي أعدادًا فردية، فتكون القائمة فارغة وهذا ناتج صحيح لا خطأ 404.
طريقة أكثر اختصارًا
يمكن تحديد أول عدد فردي ثم المرور بخطوة 2 بدل اختبار كل عدد، لكن الفهم الأساسي لباقي القسمة مفيد قبل الاختصار. في المجالات الكبيرة جدًا يفضل توليد القيم تدريجيًا بدل بناء قائمة كاملة في الذاكرة. المثال مخصص لنطاقات التمرين المعتادة.






