اذهب إلى المحتوى
  • 0

لماذا لا تتضمن دالة range(start, end) النهاية في بايثون؟

المبرمج العربي

السؤال

هذا السؤال حيرني منذ بدأت تعلم لغة بايثون، فلو نفذت هذا السطر:

>>> range(1,11)

فسيرجع لي القائمة التالية؟

[1,2,3,4,5,6,7,8,9,10]

فلماذا لا يرجع لي المجال بين 1 إلى11 بدلا من 1 إلى 10؟ لماذا دائما النهاية – 1؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هنالك عدّة أسباب لجعل النهاية في دالة المدى أقل بواحد من المجال الموجود، وأهمها شيوع كتابة range(0, 10) والتي سترجع القائمة التالية [0,1,2,3,4,5,6,7,8,9] الحاوية على 10 عناصر وهي توافق len(range(0, 10)).
تذكّر أن المبرمجين يفضلون استخدام الفهرسة التي يكون فيها أول عنصر هو 0.
أي أن إذا كان المعامل الأول صفر فالمعامل الثاني سيكون طول هذه القائمة.
في حالة ما أردت أن يكون المجال بين 1 وأي رقم تريده (يكون ضمن المجال) فيمكنك في هذه الحالة إنشاء دالتك الخاصة كما في المثال التالي:

>>> range1 = lambda start, end: range(start, end+1)
>>> range1(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...