انت بتذاكر معايا النهاردة حاجة مهمة جداً في عالمنا الحالي: كيف نتحكم في الكمبيوتر عشان يعمل اللي عاوزينه؟ لغة بايثون هي واحدة من أسهل اللغات اللي ممكن تتعلمها عشان تبدأ في البرمجة. تخيل مثلاً لو عاوز تحسب سعر الفول المدمس اللي بتاكله كل يوم في شارع المعز، أو سعر تذاكر الأتوبيس من حلوان للسادس من أكتوبر. بايثون هتساعدك تعمل ده في ثواني! في اختبار النهاردة، هنتدرب على أساسيات بايثون باستخدام أمثلة حقيقية من مصر. هل أنت مستعد؟ هبدأ بسؤال سهل عشان نفتح الشهية...
1. س: إذا كتبت الكود التالي في بايثون: print("مرحبا يا مصر") فما هو الناتج المتوقع؟
Indice : انتبه إلى علامات التنصيص والاختلاف بين الحروف العربية والإنجليزية
الإجابة
الإجابة : A — الكود print() يطبع النص الموجود داخل الأقواس، وعلامات التنصيص تُحدد بداية ونهاية النص، لكنOutput يظهر بدون علامات التنصيص.
لماذا ليس B : لأن بايثون تُترجم الحروف العربية إلى رموز
لماذا ليس C : لأن الكود غير صحيح من الأساس
لماذا ليس D : لأن النص يجب أن يكون بين قوسين مربعين []
remember
2. س: كم عدد المرات التي ستطبع فيها الكود التالي؟ for i in range(3): print(i)
Indice : تذكر أن range(3) تُولد الأرقام من 0 إلى 2
الإجابة
الإجابة : A — range(3) تُعطينا الأرقام 0، 1، 2، لذا ستطبع 3 قيم.
لماذا ليس B : لأن range(3) تُعطينا 0، 1، 2، 3 (4 أرقام)
لماذا ليس C : لأن print() لا تطبع شيئاً في المرة الأولى
لماذا ليس D : لأن الحلقة تتوقف عند 2 ولا تصل إلى 3
understand
3. س: إذا كان سعر كيلو البطاطس في سوق العباسية 8 جنيهات، فما هو سعر 5 كيلوغرامات؟
Indice : استخدم عملية الضرب البسيطة لحساب السعر الإجمالي
الإجابة
الإجابة : A — السعر الإجمالي = 8 × 5 = 40 جنيه، لأن سعر الكيلو ثابت.
لماذا ليس B : لأنك قمت بضرب 8 في 4 = 32 (خطأ في عدد الكيلوغرامات)
لماذا ليس C : لأنك قمت بجمع 8 + 8 + 8 + 8 + 8 = 40 (طريقة صحيحة لكن بطيئة)
لماذا ليس D : لأنك قمت بطرح 5 من 8 = 3 ثم ضربت في 5 (خطأ في العملية)
apply
4. س: ما هو ناتج تنفيذ الكود التالي: print(7 + 3 * 2)؟
Indice : تذكر أولويات العمليات الحسابية: الضرب قبل الجمع
الإجابة
الإجابة : A — عملية الضرب * لها أولوية أعلى من الجمع +، لذا 3*2=6 ثم 7+6=13.
لماذا ليس B : لأنك قمت بضرب 7*2=14 ثم أضفت 3 = 17 (خطأ في الأولويات)
لماذا ليس C : لأنك قمت بطرح 3 من 7 ثم ضربت في 2 = 8 (خطأ في العملية)
لماذا ليس D : لأنك قمت بجمع 7+3+2=12 (خطأ في فهم أولويات العمليات)
apply
5. س: إذا كان لديك المتغير التالي: x = 10.5 فما هو نوع البيانات لهذا المتغير في بايثون؟
Indice : انتبه إلى أن 10.5 يحتوي على علامة عشرية
الإجابة
الإجابة : A — الأرقام التي تحتوي على علامة عشرية تُعتبر من نوع float في بايثون.
لماذا ليس B : لأن بايثون تُحول الأرقام إلى نصوص تلقائياً
لماذا ليس C : لأنك قمت بتحديده كقائمة باستخدام []
لماذا ليس D : لأن الرقم 10.5 لا يمكن أن يكون من نوع float
remember
6. س: كم عدد العناصر في القائمة التالية: m = ["تفاح", "موز", "برتقال", "عنب"]؟
Indice : استخدم الدالة len() لحساب عدد العناصر
الإجابة
الإجابة : A — القائمة تحتوي على 4 عناصر: تفاح، موز، برتقال، عنب.
لماذا ليس B : لأنك قمت بإضافة عنصر فارغ في البداية
لماذا ليس C : لأنك قمت بحساب عدد الأحرف في الكلمة الأخيرة فقط
لماذا ليس D : لأنك قمت بدمج بعض العناصر معاً
understand
7. س: إذا قمت بكتابة الكود التالي: for i in range(2, 6): print(i) فما هو النطاق الذي ستعمل عليه الحلقة؟
Indice : range(a, b) تبدأ من a وتنتهي عند b-1
الإجابة
الإجابة : A — range(2, 6) تُولد الأرقام 2، 3، 4، 5 (تنتهي عند 6-1=5).
لماذا ليس B : لأن الحلقة تبدأ من 1 بدلاً من 2
لماذا ليس C : لأن range(2, 6) تُعطينا 2، 3، 4، 5، 6 (5 أرقام)
لماذا ليس D : لأن الحلقة تبدأ من 0 دائماً
understand
8. س: إذا كان سعر كيلو اللحمة 250 جنيه في سوقFriday، فما هو سعر 1.5 كيلوغرام؟
Indice : استخدم عملية الضرب مع مراعاة الكسور العشرية
الإجابة
الإجابة : A — السعر الإجمالي = 250 × 1.5 = 375 جنيه، لأن 1.5 = 3/2.
لماذا ليس B : لأنك قمت بضرب 250 في 2 = 500 ثم قسمته على 2 (طريقة صحيحة لكن معقدة)
لماذا ليس C : لأنك قمت بطرح 50 جنيه من 250 = 200 ثم ضربت في 1.5 (خطأ في العملية)
لماذا ليس D : لأنك قمت بضرب 250 في 1 = 250 فقط (نسيت الكسر)
apply
9. س: ما هو الخطأ في الكود التالي: for i in range(5) print(i)
Indice : انتبه إلى وجود النقطتين بعد for
الإجابة
الإجابة : A — الكود يحتاج إلى نقطتين بعد for وبعد range(5) لإنهاء الجملة البرمجية.
لماذا ليس B : لأن range(5) وrange(0,5) لهما نفس المعنى في بايثون
لماذا ليس C : لأن print(i) يجب أن تُكتب بدون قوسين
لماذا ليس D : لأن الحلقة يجب أن تنتهي بعلامة ;
evaluate
10. س: إذا قمت بتعريف المتغيرين التاليين: x = 5 y = 10 فما هو ناتج الكود: print(x + y)?
Indice : المتغيرات x وy تحتويان على قيم عددية
الإجابة
الإجابة : A — بايثون تجمع القيم العددية للمتغيرات، لذا 5 + 10 = 15.
لماذا ليس B : لأن المتغيرات لا يمكن جمعها معاً
لماذا ليس C : لأن print() لا تطبع سوى المتغير الأخير
لماذا ليس D : لأن بايثون تُعيد ترتيب الأرقام حسب الحجم
apply
11. س: كم عدد المرات التي ستطبع فيها الكود التالي: for i in range(1, 4): print("مرحبا")
Indice : range(1, 4) تُعطينا 1، 2، 3
الإجابة
الإجابة : A — الحلقة ستعمل 3 مرات (لـ 1، 2، 3) وستطبع "مرحبا" في كل مرة.
لماذا ليس B : لأن الحلقة تتوقف عند 2 فقط
لماذا ليس C : لأن print() لا تطبع سوى مرة واحدة
لماذا ليس D : لأنك قمت بإضافة شرط if بدون داعٍ
understand
12. س: إذا كان سعر تذكرة الأتوبيس من حلوان إلى التجمع الخامس 12 جنيه، فما هو سعر 4 تذاكر؟
Indice : استخدم عملية الضرب لحساب السعر الإجمالي
الإجابة
الإجابة : A — السعر الإجمالي = 12 × 4 = 48 جنيه، لأن كل تذكرة 12 جنيه.
لماذا ليس B : لأنك قمت بضرب 12 في 3 = 36 (خطأ في عدد التذاكر)
لماذا ليس C : لأنك قمت بطرح 4 من 12 = 8 ثم ضربت في 4 = 32 (خطأ في العملية)
لماذا ليس D : لأنك قمت بجمع 12 + 12 + 12 + 12 = 48 (طريقة صحيحة لكن بطيئة)
apply
13. س: ما هو ناتج الكود التالي: print(15 // 4)?
Indice : // هي عملية القسمة الصحيحة (بدون باقي)
الإجابة
الإجابة : A — // تُعيد ناتج القسمة بدون الكسر العشري، لذا 15 ÷ 4 = 3 والباقي 3.
لماذا ليس B : لأن // تُعيد أكبر عدد صحيح أقل من الناتج (4)
لماذا ليس C : لأن العملية تُعيد الباقي فقط (3)
لماذا ليس D : لأن بايثون تُعيد 0 لأن 4 لا تقسم 15 بالتساوي
understand
14. س: إذا قمت بتعريف القائمة: fruits = ["تفاح", "موز", "برتقال"] فما هو الكود الصحيح لإضافة "عنب" إلى القائمة؟
Indice : استخدم الطريقة append() لإضافة عنصر إلى نهاية القائمة
الإجابة
الإجابة : A — طريقة append() هي الطريقة الصحيحة لإضافة عنصر إلى نهاية القائمة في بايثون.
لماذا ليس B : لأن insert() تحتاج إلى مؤشر لإضافة العنصر في مكان معين
لماذا ليس C : لأن ترتيب الكلمات في الكود خطأ
لماذا ليس D : لأن بايثون لا تدعم إضافة عناصر إلى القوائم
apply
15. س: كم عدد الأحرف في الكلمة "هرم"؟
Indice : استخدم الدالة len() لحساب عدد الأحرف في الكلمة
الإجابة
الإجابة : A — الكلمة "هرم" تحتوي على 3 أحرف: ه، ر، م.
لماذا ليس B : لأنك قمت بإضافة حرف الألف في البداية
لماذا ليس C : لأنك قمت بدمج الحرفين الأخيرين معاً
لماذا ليس D : لأن بايثون تُعيد عدد الكلمات وليس الأحرف
remember
16. س: إذا كان سعر كيلو الأرز 18 جنيه في سوبر ماركت في الزمالك، فما هو سعر 2.5 كيلوغرام؟
Indice : استخدم عملية الضرب مع مراعاة الكسور العشرية
الإجابة
الإجابة : A — السعر الإجمالي = 18 × 2.5 = 45 جنيه، لأن 2.5 = 5/2.
لماذا ليس B : لأنك قمت بضرب 18 في 2 = 36 ثم أضفت 9 = 45 (طريقة صحيحة)
لماذا ليس C : لأنك قمت بضرب 18 في 3 = 54 ثم طرحت 9 = 45 (طريقة صحيحة)
لماذا ليس D : لأنك قمت بجمع 18 + 2.5 = 20.5 (خطأ في العملية)
apply
17. س: ما هو الخطأ في الكود التالي: x = 10 y = 5 if x > y: print("x أكبر") else print("y أكبر")
Indice : انتبه إلى وجود النقطتين بعد if وelse
الإجابة
الإجابة : A — الكود يحتاج إلى نقطتين بعد if وبعد else لإنهاء الجملة البرمجية.
لماذا ليس B : لأن print يجب أن تُكتب بدون قوسين
لماذا ليس C : لأن المقارنة x > y صحيحة ولا تحتاج إلى تعديل
لماذا ليس D : لأن else يجب أن تأتي في سطر جديد
evaluate
18. س: إذا قمت بتعريف الدالة التالية: def greet(name): return "مرحبا " + name فما هو ناتج استدعاء الدالة greet("أحمد")؟
Indice : الدالة تُعيد نصاً يحتوي على "مرحبا " متبوعاً بالاسم
الإجابة
الإجابة : A — الدالة تجمع النص "مرحبا " مع المتغير name الذي يحتوي على "أحمد"، لذا الناتج هو "مرحبا أحمد".
لماذا ليس B : لأن الدالة تُعيد "أهلا" بدلاً من "مرحبا"
لماذا ليس C : لأن + تُستخدم للجمع العددي وليس للنصوص
لماذا ليس D : لأن الدالة تُعيد المتغير name فقط
apply
19. س: كم عدد الكيلوغرامات في 5000 جرام؟
Indice : 1 كيلوغرام = 1000 جرام
الإجابة
الإجابة : A — لأن 5000 جرام ÷ 1000 = 5 كيلوغرامات.
لماذا ليس B : لأنك قمت بضرب 5000 في 1000 = 5,000,000 (خطأ في العملية)
لماذا ليس C : لأنك قمت بطرح 5000 - 1000 = 4000 ثم قسمته على 1000 = 4 (خطأ في العملية)
لماذا ليس D : لأنك قمت بقلب العملية وقمت بضرب 5000 في 0.001 = 5 (طريقة صحيحة)
apply