assertCountEqual في بايثون: هل يقبل قوائم غير قابلة للتجزئة؟
غياب التجزئة لا يمنع التأكيد هنا. [1] [2] [3]
أفكار وأدوات رقمية بلغة مفهومة.
2060 مقالًا
غياب التجزئة لا يمنع التأكيد هنا. [1] [2] [3]
قارئ ZIP المفتوح مستقل عن الأرشيف هنا.
النوافذ في sliding_window_view قد تتداخل في التخزين. [1] نختبر كتابة مفردة، ونفصل منع الكتابة الافتراضي عن أثر السماح بها.
الحد يغيّر عرض الفرق هنا. [1] [2]
mkdir في ZIP تتجاهل mode مع ZipInfo هنا.
قد تستخدم spacing لبناء سماحية عددية، فتفترض أن نتيجتها مسافة موجبة إلى أقرب جار. لكن تجربة تخص العدد −2 تكشف مشكلتين: الإشارة سالبة، والجار نحو الصفر أقرب من الجار الذي تحدده هذه الخطوة. لذلك نميز اتجاه الانتقال عن مقدار الفاصل.
الرسالة المخصصة تستبدل القياسية هنا. [1] [2]
قد تحذف الجزء الكسري باستخدام trunc، ثم تحول الناتج إلى عدد صحيح وتعيده إلى float64. تساوي القيم قبل التحويل وبعده قد يوحي بأن شيئًا لم يتغير. لكن في مثالنا يفقد الصفر الناتج من −0.75 إشارته السالبة خلال هذا المسار؛ لذلك نفحص سجل الإشارة إلى جانب القيمة.
قد تقرأ زاوية 180° من angle فتتصور عددًا مركبًا غير صفري على الجهة السالبة. لكن في تجربتنا أعطى أحد تمثيلات الصفر المركب الزاوية نفسها، مع مقدار يساوي صفرًا. سنفصل نتيجة الزاوية عن اختبار المقدار، ونتابع إشارتي الجزأين الحقيقي والتخيلي.
قد تستخرج الجزء الحقيقي من مصفوفة مركبة لتعدّل أرقامه، وتظن أن الناتج الحقيقي مستقل عن الأصل المركب. في مثالنا بقيت البيانات مشتركة: كتابة واحدة في الناتج غيرت جزءًا من الأصل. سنضع نسخة صريحة بجواره، ثم نتابع ثلاث لقطات للكتابة في الاتجاهين.
عندما ترتب أعدادًا مركبة، تحتاج إلى تحديد ما تقارنه: الجزأين الحقيقي والتخيلي، أم مقدار كل عدد. في مثالنا وضعت sort_complex أكبر مقدار أولًا، بينما وضع الفرز بالمقدار هذا العدد أخيرًا. سنقرأ ترتيبين للقيم الخمس نفسها ونراجع سبب الاختلاف.
قد تحمل مصفوفة NumPy عددًا واحدًا دون محاور، ومع ذلك تعيد isscalar لها False. في مثالنا بقي العدد 13 نفسه بين خمسة تمثيلات، لكن نتيجة الاختبار تغيرت مع نوع الكائن. سنقرأ اختبار النوع إلى جانب عدد الأبعاد، ثم نرى أثر استخراج العنصر.
العدد −9 واحد، لكن نصه الثنائي قد يبدأ بشرطة أو يتكون من آحاد وأصفار فقط. في binary_repr يحدد width طريقة كتابة السالب. سنقرأ ثلاثة نصوص للقيمة نفسها، ثم نفحص لماذا لا يعيد تحويل النص إلى عدد في الأساس 2 القيمة السالبة تلقائيًا.
كتابة precision=2 لا تكفي وحدها لفهم نص عشري تنتجه format_float_positional. للقيمة 13.25 حصلنا على "13.25" في إعداد، و"13." في الآخر؛ بقي العدد الأصلي نفسه. سنثبت بقية الخيارات ونغير fractional، ثم نراجع مثالًا أكبر وتحكمًا صغيرًا تتفق فيه النتيجتان.
قد يبدو النص "1.02e+003" أدق من "1.02e+3" لأنه أطول. في مثالنا خرج النصان من العدد 1024 بإعدادين يختلفان في exp_digits وحده، وبقيا يمثلان القيمة المقربة 1020 نفسها. سنفصل عدد خانات الأس عن المعامل، ونفحص معنى الحد الأدنى للعرض.
قد تختار padding=2 وتتوقع نصًا من خانتين، ثم تظهر أربع. في مثالنا أعادت base_repr للعدد 93 في الأساس 16 النص 005D؛ أضاف الطلب صفرين إلى المقدار 5D. سنعد الأصفار والخانات والإشارة، ونفحص حدًا يتغير عنده طول المقدار.
تحتوي مصفوفتنا int8 على 61 و 64 و 70، لكن iinfo تعرض −128 و 127. لم تظهر هاتان القيمتان في البيانات أصلًا. سنفصل حدود النوع عن أصغر عنصر وأكبره، ونقارن مثيلين يحملان 61 بنوعين مختلفين.
قد تعيد iscomplexobj القيمة True لمصفوفة، ثم تعطي iscomplex القناع [False,False] للمصفوفة نفسها. في مثالنا النوع complex128 والتخيلي صفر في العنصرين. سنقارن فحص النوع بفحص القيم، ونستعمل تحكمًا حقيقيًا وآخر مختلطًا.