اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 1 : ناقش طرق صياغة الاختيار المتعدد في لغة البايثون
📝 الجواب
- استخدام if - elif - else : في كثير من الأحيان يكون لدينا عدد من الاختيارات وليس اختيار وحيد وفي هذه الحالة لابد أن نستخدم if - elif - else كما يلي:
- الشرط الأول if : التعليمات التي يتم تنفيذها عند تحقق الشرط الأول.
- الشرط الثاني elif: التعليمات التي يتم تنفيذها عند تحقق الشرط الثاني.
- :else التعليمات التي يتم تنفيذها عند عدم تحقق أي من الشروط السابقة
- elif وال else هي كلمات محجوزة مثلها مثل ال if
- يمكن استخدام elif أي عدد من المرات بناء على الاختيارات المتاحة
- تستخدم else في النهاية لتعبر عن الحالة الافتراضية والتي تحدث عند عدم تحقق أي من الشروط السابقة
(2) استخدام تعبير match-case: يمكن استخدام match-case عند مقارنة متغير بعدد من القيم المحددة ومن ثم تنفيذ التعليمات الخاصة بالحالة التي تتوافق مع المتغير. وتكون الصياغة العامة لها كالتالي:
- match: يحدد المتغير الذي سيقارن بالحالات
-
case توضع قيم الحالة الأولى
التعليمات التي ستنفذ عند تحقق هذه الحالة -
case : توضع قيم الحالة الثانية
التعليمات التي ستنفذ في هذه الحالة - _case: التعليمات التي ستنفذ في الحالة الافتراضية
- يمكن استخدام match بديلا عن if-elif-else في بعض الحالات عندما تكون الشروط غير معقدة
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 2 : ناقش الطرق المختلفة لإدخال البيانات في لغة البايثون
📝 الجواب
- عن طريق تنفيذ أكواد البايثون:
- تنفيذ الأكواد من خلال مترجم البايثون مباشرة.
- تنفيذ الأكواد من خلال موجه الأوامر
- استقبال المدخلات من الـ terminal
- استخدام دالة () input : تستخدم لتمكين المستخدم من إدخال قيم اختيارية في كل مرة يتم تنفيذ البرنامج.
- استخدام دالة () eval: تستخدم لتحويل المدخلات إلى النوع المناسب وذلك باستقبال ثلاث متغيرات من المستخدم وتستخدم الدالة لتحويلها إلى النوع المناسب حسب البيانات المدخلة.
- استخدام المدخلات من خلال سطر الأوامر : استخدام sys.argv لاستقبال المدخلات.
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 3 : ناقش الغرض الرئيسي من استخدام try-except في برامج لغة البايثون.
📝 الجواب
مع التنوع الكبير في الأخطاء التي قد تحدث في البرامج مثل إدخال عدد متغيرات مختلفة أو من نوع مختلف أو استخدام متغيرات لم يتم تعيين قيمة لها وغيرها يتم استخدام try-except لمعالجة الأخطاء.
وكلمات try و except هي كلمات محجوز للمترجم ويجب عدم استخدامها في أي غرض أخر داخل البرنامج عدا معالجة الأخطاء. ويمكن استخدام أكثر من except لمعالجة كل خطأ على حدة.
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 4 : ناقش استخدام تكرار الـ for للتنقل بين حروف النص.
📝 الجواب
يقوم بالتكرار عن طريق التنقل بين عدد العناصر، مثل التكرار عن طريق التنقل بين الأرقام من 0 إلى 10 أو التنقل بين أحرف النص. ويتم كتابة الـ for بشكل عام كالتالي:
تكتب التعليمات ويتم وضع هيكل به مجموعة العناصر التي سينتقل بينها in ويتم تحديد متغير التكرار for البرمجية التي ستتكرر، ويجب ملاحظة
- استخدام بعد نهاية رأس تعليمة التكرار for
- استخدام المحاذاة لتمييز التعليمات الخاصة بـ if
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 5 : ناقش المكونات الرئيسية لتكرار while
📝 الجواب
- الصيغة العامة لتكرار while تكون كما يلي:
- تهيئة متغير التكرار مثال: 0 = i
- شرط مرتبط بمتغير التكرار مثال: (10> i )while
- التعليمات البرمجية المراد تكرارها.
- يجب أن يتم تغير قيمة متغير التكرار ضمن هذه التعليميات.
( مثال 1 = i )
- إذا لم يتم استخدام تعليمة برمجية مع الـ while لتغير حالة متغير التكرار، فان التكرار سيعمل إلى ما لا نهاية. على سبيل المثال عند تهيئة بقيمة مبدأيه 0 واستخدام الشرط 10 > i ، فانه سيكون الشرط متحقق ويبدأ التكرار ولذلك إن لم يتم تغير قيمة : سيظل محقق الشرط طوال الوقت.
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 6 : ناقش كيفية كتابة الدوال المخصصة في لغة البايثون
📝 الجواب
يمكن تعريف الدوال بشكل عام كما يلي:
(المعاملات) اسم الدالة def
تعليمات جسم الدالة
- Def الكلمة المفتاحية التي تُخبر البايثون بأننا نريد تعريف دالة.
- اسم الدالة : معرف بايثون صحيح يسمى الدالة.
- المعاملات: قائمة اختيارية منفصلة بفواصل تحتوي على المتغيرات التي يمكن تمريرها إلى الدالة.
- تعليمات جسم الدالة: مجموعة من التعليمات البرمجية الصحيحة المراد تنفيذها.
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 7 : ناقش طرق إضافة عناصر للقائمة (List) في لغة البايثون.
📝 الجواب
- استخدام [] وإدخال عناصر القائمة.
- إنشاء قائمة عن طريق استخدام دالة () split مع النصوص. وتقوم دالة () split بتقسيم النص بناءً على الفاصل الذي يتم تحديده أثناء استدعاء الدالة مع اعتبار المسافة هي الفاصل الافتراضي.
- إنشاء قائمة عن طريق استخدام دالة () list . وتقوم دالة () list بتحويل البيانات إلى قائمة.
- عن طريق استخدام الفهرس المقابل له يستخدم الفهرس بين الأقواس المربعة للإشارة إلى عنصر معين.
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 8 : ناقش هياكل بيانات البايثون التي يمكن استخدامها في تخزين المفاتيح مع القيم المقابلة لها.
📝 الجواب
- Tuple في لغة بايثون هي نوع من البيانات غير قابل للتغيير يتكون من مجموعة عناصر مرتبة، يمكن أن تكون هذه العناصر أي نوع بيانات، بما في ذلك الأعداد الصحيحة والأرقام العائمة، والنصوص، والكائنات. ومن خصائصها مرتبة ذات أساس صفري، غير قابلة للتغيير، غير متجانسة قابلة للتداخل (التراكب) قابلة للتقسيم والدمج.
- Dictionary في لغة بايثون هو نوع بيانات غير مرتب يتكون من أزواج من المفاتيح والقيم المفاتيح هي معرفات فريدة لكل زوج، بينما القيم هي أي البيانات. يمكن الوصول إلى القيم في القاموس باستخدام المفاتيح الخاصة بها. ومن خصائصها تخزين المفاتيح والقيم قابلة للتعديل، غير مرتبة المفاتيح فريدة، غالباً ما تستخدم لتمثيل البيانات.
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 9 : ناقش أهمية استخدام البرمجة كائنية التوجه.
📝 الجواب
هي أحد أنماط البرمجة الشهيرة والتي تستخدم لتنظيم التعليمات البرمجية وتطوير تطبيقات أكثر قابلية للصيانة وإعادة الاستخدام، وتعتمد على مفهوم الكائنات وتقسيم البرنامج إلى مجموعة من الفئات التي تتفاعل مع بعضها البعض لتحقيق الأهداف المحددة.
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 10 : ناقش مفهوم التوريث في البرمجة كائنية التوجه وكيف يمكن استخدامه؟
📝 الجواب
التوريث (Inheritance) يعني انشاء فئات فرعية (Subclass) تعتمد على فئات أخرى أساسية (Base Classes) بحيث ترث الفئات الفرعية كل خصائص الفئات الأساسية. وتكون الفئات الأساسية عامة بشكل كبير بينما الفئات الفرعية تكون مخصصة. وعند بناء فئات فرعية استناداً الى فئات أساسية وتعريف كائنات من الفئات الفرعية، فإن ذلك يمثل تسلسل هرمي تكون في قاعدته الكائنات ثم الفئات الفرعية وبعد ذلك الفئات الرئيسية.
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 11 : ناقش كيفية تخزين الكائنات وتحميلها في البايثون
📝 الجواب
لتخزين الكائنات، سنستخدم مكتبة shelve. نقوم باستدعاء المكتبة داخل ملف personDB.py كالتالي:
import shelve
وتستخدم هذه المكتبة لتخزين الكائنات في ملف واسترجاعها من خلال استخدام المفاتيح. وتشمل عملية التخزين عدة خطوات كالتالي:
- استخدام دالة () shelve.open مع تحديد اسم الملف لفتح ملف لتخزين الكائنات
- استخدام مفتاح (key) غير متكرر لتخزين كل كائن بنفس الطريقة التي استخدمناها في حالة القاموس.
- إغلاق الملف من خلال استخدام دالة () close
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 12 : ناقش المكونات الرئيسية لبناء الواجهات الرسومية باستخدام Tkinter
📝 الجواب
- استدعاء مكتبة Tkinter وانشاء نافذة جديدة من خلال:
- تحديد خصائص النافذة مثل الأبعاد والعنوان
- استدعاء الحلقة الرئيسية (loop) main) وهي التي تبقي النافذة مفتوحة حتى يتم اغلاقها () window.mainloop
- لإضافة عناصر الى النافذة، يمكن استخدام ال Widgets . وتمثل ال Widgets المختلفة فئات فرعية من ال Tkinter
import tkinter as tk
() window = tk.Tk
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 13 : ناقش أنواع Geometry mangers ب ال Tkinter وفرق بينها.
📝 الجواب
- ()pack: يستخدم لتنظيم العناصر في المكان الذي يتم تحديده بناءً على الاتجاهات أعلى، أسفل، يمين، يسار وبناء على التوسيع والملء
- ()grid: يستخدم لتنظيم العناصر في شبكة ثنائية الأبعاد، حيث يُحدد الموقع باستخدام الصفوف والأعمدة
- ()place : يستخدم لتحديد المواقع بشكل دقيق للعناصر داخل النافذة أو الإطار باستخدام إحداثيات والـ y x والـ
اضغط هنا لدخول قناة جامعة الملك فيصل
أزرار التنقل بين مناقشات المادة ⤵️
🔖 السؤال
س 14 : ناقش أهمية القوائم وكيفية انشائها في Tkinter
📝 الجواب
القوائم في Tkinter تسهل تنظيم البيانات وتفاعل المستخدم مع التطبيق، وتتيح اختيار العناصر وتنفيذ الإجراءات. يمكن إنشاء القوائم في Tkinter باستخدام عناصر Listbox أو Combobox، مما يتطلب تعريف العناصر وربطها بالإجراءات المناسبة لتحقيق التفاعل المطلوب. وفي البايثون يدعم Tkinter بناء القوائم وتخصيصها كما يلي التالي
- نقوم بإنشاء فئة تمثل النافذة (App).
- نقوم بإضافة قائمة أساسية من خلال استخدام ()tk.Menu
- بعد ذلك نقوم بإضافة القوائم الفرعية. مثل إضافة file_menu للقائمة menu التي تم اضافتها مسبقا. (خاصية tearoff تحدد إمكانية تحريك القائمة من موضعها 0 تعني انه لا يمكن تحريكها و 1 تعني أنه يمكن تحريكها.
- تضاف العناصر للقائمة أو القوائم الفرعية من خلال add_command ويتم تحديد اسمه وكذلك الوظيفة التي سيقوم بتنفيذها من خلال خاصية command
- لاختبار القائمة التي قمنا بتعرفيها ، سنقوم بإنشاء كائن نافذة من الفئة App ونستدعي mainloop
- عند الضغط على قائمة File ستظهر القائمة المنسدلة والتي تحتوي العناصر الفرعية