TheBrain نشر 12 يناير 2016 أريد مقارنة أعداد إصدارات لبرنامج معين في بايثون ومعرفة ما الإصدار الأحدث، حاولت مقارنة السلاسل النصية لكنها تعطي نتيجة خاطئة كالتالي:>>> "2.3.1" > "10.1.1" True انشر على الشّبكات الاجتماعية رابط هذه المساهمة
0 هشام رزق الله نشر 12 يناير 2016 يمكنك فعل ذلك بعدة طرق في لغة بايثون، فيمكنك على سبيل المثال استخدام دوال 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 انشر على الشّبكات الاجتماعية رابط هذه المساهمة
أريد مقارنة أعداد إصدارات لبرنامج معين في بايثون ومعرفة ما الإصدار الأحدث، حاولت مقارنة السلاسل النصية لكنها تعطي نتيجة خاطئة كالتالي:
انشر على الشّبكات الاجتماعية
رابط هذه المساهمة