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

أسئلة عامة

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

السؤال

نشر

السلام عليكم

لم أفهم لماذا جوابي خطأ في هذه الأسئلة المرفقة في الصور ؟ أرجوا مساعدتكم 

1.png

2.png

Screenshot 2026-09-18 at 8.43.31 PM.png

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

بالنسبة للصورة الأولى ستجد في الشرط الثاني تم إستخدام or 6 وهنا أى رقم سوى ال 0 يعتبر قيمة true إذا فهذا الجزء من الشرط تحقق وبما أن or يتم تنفيذها إذا كان أى من الجانبين صحيح true وهكذا تم تنفيذ الشرط الثاني والجواب هو b .

وبالنسبة للصورة الثانية فالأمر نفس الشئ فهنا تم إستخدام 'or 'b وهي أيضا قيمة true فالسلسلة النصية ليست فارغة إذا سيتم تنفيذ هذا الشرط .

اما بالنسبة للصورة الأخيرة فهنا ستحدث مشكلة الكود لن يعمل لانه لا يمكن وضع رموز خاصة للمتغيرات فهنا تم وضع علامة @ في اسم المتغير ولهذا سيحدث خطأ "SyntaxError: invalid syntax".

وأنصح بدراسة القيم الصحيحة "truthy values" يمكنك البحث على يوتيوب بهذا الإسم ومشاهدة فيديو بخصوص هذا الأمر.

  • 0
نشر

عليك بدراسة المفاهيم التالية وستتمكن من استيعاب ما الخطأ:

  • أسبقية العمليات Operator Precedence، فالخطأ بسبب عدم معرفة كيف يقرأ بايثون الأسطر.
  • التقييم المختصر وما تعيده المعاملات المنطقية Short-Circuit Evaluation، حيث المعاملان and و or في بايثون لا يعيدان مجرد قيمة منطقية مجردة True أو False، بل  أحد المعاملين الفعليين.
  • دراسة القيم الخاطئة Falsy Values مقابل Truthy Values، بدلاً من محاولة حفظ كل القيم الصحيحة وهي لا نهائية، من الأسهل بكثير حفظ القيم الخاطئة Falsy فقط، لأن أي شيء عداها يُعد تلقائياً Truthy.
  • قواعد تسمية المعرفات Python Identifiers لتفادي أخطاء الـ SyntaxError كالتي ظهرت مع الرمز @
  • 0
نشر

أخطأت في الأسئلة لأن بايثون تقرأ or كشرط مستقل بعد المقارنة، فالتعبير:

s=='a' or 'b'

يصبح:

(s=='a') or 'b'

والنص 'b' غير الفارغ قيمته True، فيتحقق الشرط دائما ويطبع 1 وليس 2، وكذلك:

n==3 or 6

يصبح:

(n==3) or 6

والرقم 6 غير صفري فهو True فينفذ ال elif ويطبع 2 وليس 3 أما السؤال الأول فموضع @ هو 12 فعلا لكن اسم المتغير index_@ غير صالح لأن الرموز الخاصة لا تستخدم في الأسماء، فينتج SyntaxError ولا يطبع شيء، فالجواب المطلوب هو خطأ في الصياغة (Syntax Error) وليس 12.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...