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

كيف أقارن عدد الإصدار في بايثون؟

TheBrain

السؤال

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

>>> "2.3.1" > "10.1.1"
True
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يمكنك فعل ذلك بعدة طرق في لغة بايثون، فيمكنك على سبيل المثال استخدام دوال LooseVersion وstrictVersion من وحدة distutils.version وبعدها تقوم بعملية المقارنة المعتادة وسيتم إرجاع قيمة منطقية (True/False) كما في المثال التالي:

>>> from distutils.version import LooseVersion, StrictVersion
>>> LooseVersion("2.3.1") < LooseVersion("10.1.2")
True
>>> StrictVersion("2.3.1") < StrictVersion("10.1.2")
True
>>> StrictVersion("1.3.a4")
Traceback (most recent call last):
...
ValueError: invalid version number '1.3.a4'

أو يمكنك تحويل أعداد الإصدارات إلى tuple عن طريق استخدام حلقة التكرار map بالإضافة إلى دوال split و int ومن ثم تقوم بعملية المقارنة كما في المثال التالي:

def versiontuple(v):
    return tuple(map(int, (v.split("."))))

>>> versiontuple("2.3.1") > versiontuple("10.1.1")
False
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...