امتحان Python 5: الفئات، الكائنات، والتعامل مع الملفات (10 تمارين مركبة)

امتحان Python 5: البرمجة كائنية التوجه والملفات

اختبر مهاراتك في بناء هيكلية برمجية قوية باستخدام الفئات والوراثة، بالإضافة إلى قراءة وكتابة الملفات.

تمرين 1 إنشاء فئة (Create a Class)

أنشئ فئة بسيطة:

  1. عرف فئة باسم `MyClass`.
  2. تحتوي على خاصية `x = 5`.
  3. أنشئ كائناً `p1` من هذه الفئة واطبع قيمة `x`.
الحل
class MyClass:
  x = 5

p1 = MyClass()
print(p1.x)
تمرين 2 دالة __init__

استخدم دالة البناء:

  1. عرف فئة `Person` مع دالة `__init__`.
  2. تأخذ الدالة `name` و `age`.
  3. أنشئ كائناً باسم "John" وعمر 36.
  4. اطبع الاسم والعمر.
الحل
class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

p1 = Person("John", 36)

print(p1.name)
print(p1.age)
تمرين 3 دوال الكائن (Object Methods)

أضف وظائف للفئة:

  1. في فئة `Person`، أضف دالة `myfunc`.
  2. تطبع الدالة "Hello my name is " متبوعاً بالاسم.
  3. استدعِ الدالة من الكائن `p1`.
الحل
class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def myfunc(self):
    print("Hello my name is " + self.name)

p1 = Person("John", 36)
p1.myfunc()
تمرين 4 المعامل Self

فهم المعامل `self`:

  1. هل يجب تسمية المعامل الأول بـ `self` دائماً؟
  2. جرب تغيير اسمه إلى `mysillyobject` في دالة `myfunc` وتأكد أنها تعمل.
الحل
# نعم، يمكن تغيير الاسم، لكن يجب أن يكون أول معامل.
class Person:
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age

  def myfunc(abc):
    print("Hello my name is " + abc.name)

p1 = Person("John", 36)
p1.myfunc()
تمرين 5 الوراثة (Inheritance)

أنشئ فئة فرعية:

  1. عرف فئة `Student` ترث من `Person`.
  2. لا تضف أي خصائص جديدة (استخدم `pass`).
  3. أنشئ كائناً من `Student` واستخدم خصائص `Person`.
الحل
class Student(Person):
  pass

x = Student("Mike", 24)
x.myfunc()
تمرين 6 إضافة خصائص للابن

خصص الفئة الفرعية:

  1. في فئة `Student`، أضف `__init__`.
  2. استخدم `super().__init__(name, age)` للحفاظ على وراثة الأب.
  3. أضف خاصية جديدة `graduationyear`.
الحل
class Student(Person):
  def __init__(self, name, age, year):
    super().__init__(name, age)
    self.graduationyear = year

x = Student("Mike", 24, 2019)
print(x.graduationyear)
تمرين 7 المكررات (Iterators)

أنشئ مكرراً:

  1. لديك صف `mytuple = ("apple", "banana", "cherry")`.
  2. احصل على المكرر باستخدام `iter()`.
  3. اطبع العنصر التالي باستخدام `next()`.
الحل
mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)

print(next(myit))
print(next(myit))
تمرين 8 فتح الملفات (File Open)

اقرأ ملفاً نصياً:

  1. افتح ملف `demofile.txt` للقراءة (`"r"`).
  2. اطبع محتواه باستخدام `read()`.
الحل
f = open("demofile.txt", "r")
print(f.read())
تمرين 9 الكتابة في الملفات (File Write)

أضف محتوى لملف:

  1. افتح ملف `demofile2.txt` للإضافة (`"a"`).
  2. اكتب "Now the file has more content!".
  3. أغلق الملف.
الحل
f = open("demofile2.txt", "a")
f.write("Now the file has more content!")
f.close()
تمرين 10 حذف الملفات (Delete File)

احذف ملفاً من النظام:

  1. استورد وحدة `os`.
  2. تحقق مما إذا كان الملف `demofile.txt` موجوداً.
  3. إذا كان موجوداً، احذفه باستخدام `os.remove()`.
الحل
import os
if os.path.exists("demofile.txt"):
  os.remove("demofile.txt")
else:
  print("The file does not exist")
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن