مجموعة امثلة وتطبيقات على oop باستخدام لغة python

مجموعة امثلة وتطبيقات على oop باستخدام لغة python

مجموعة امثلة وتطبيقات على oop باستخدام لغة python

تعد مشاريع بلغه بايثون احد اهم الاشياء التي يبحث عليها الكثير منكم. لكي يتعلم و يتقن لغه البايثون ويرجع ذلك الى عده اسباب اولا ان اسكريبتات لغه بايثون مهمه جدا في الذكاء الاصطناعي ويريد الكثير منكم تعلم هذه المهاره. ايضا تعد لغه بايتون اكثر لغه عليها طلب في سوق العمل في الوقت الحالي وذلك لعده اشياء سوف نذكرها معكم في النقطه التاليه. ولكن يجب عليكم التركيز في جميع اكواد بايثون وامثله على الاكواد التي سوف نقدمها لكم لانه باتباعك هذه الاكواد واتقانها بشكل جيد سوف اخبرك انك سوف تكون قادر على فعل خوارزميات الذكاء الاصطناعي حيث سوف نتعمق معكم في كثير من التفاصيل حول هذه اللغه وحول البرمجه من خلالها. 


السبب الذي يجعل لغه python اكثر لغه عليها طلب في سوق العمل وايضا في الذكاء الاصطناعي هو توفرها على مكتبات  كثيره وايضا سهوله في كتابه الكود حيث يمكنك كتابه اكواد لغه بايثون باي لغه اخرى مثل لغه جافا ولكن قد تجد ان الامر. طويل جدا في الجافا والذي تتميز بايثون به البساطه. وهذا ما يفضله الكثير منا وهو كتابه اكواد بسيطه جدا تقوم بوظيفه كبيره. وايضا وجود المكتبات. يساعد على تحسين و في اشهار لغه البايثون. ومن خلال المقالات التاليه سوف نستعرض معكم اكواد و مكتبات كثيره جدا. بي بايثون 


نبيذة عن oop باستخدام بايثون

ال oop من العناصر التي لا غنى عنها في البرمجة حيث انها تتعامل مع الكلاسات بشكل كبير وهي تستخدم في اغلب لغات البرمجة كبايثون وجافا وسي بلس وغيرها وهي تقسيم المشروع الى اكثر من كلاس وعمل وراثة للمشاريع بحيث ينظم الكود لدينا ويوفر وقت كبير علينا في كتابة الاكواد وقد سبق وشرحناه في مقالة سابقة , بإختصار الoop لا غنى عنها في لغة برمجة تستخدم الكائنات ولن تستطيع احتراف اي لغة دون تعلمك لل OOP وهذا المقال تابع للمقالات السابقة التي شرحناها لكم وسوف نكمل معكم بمجموعة من الامثلة والاكواد لايضاح الفكرة بشكل كبير .


ماهي اهم العناصر التي تستخدم في oop بواسطة python

يوجد كثير من المتغيرات التي يمكنك عملها وسوف تشاهد صورة في نهاية هذا الجزء لمجموعة من الاومر يتم وضعها بعد بدلا من اسم الdef وبعدها استخدم الوظيفة التي تريدها مثلا __init__ وهي تعمل نفس وظيفة الconstructor و ال__add__ تقوم بعمل جمع للمتغيرات وغيرها الكثبر من الوظائف التي يمكنك استخدامها والتعرف عليها من خلال الصورة التالية .


كود بايثون لمقارنة عددين ومعرفة الاكبر باستخدام oop

كود بايثون لمقارنة عددين ومعرفة الاكبر باستخدام oop

قمنا بعمل وظيفة تحمل العناصر مثل الاسم والعمر ونريد معرفة عمر الشخص الاول اكبر من الثاني ام العكس وقمنا بعمل __gt__ وايضا __lt__ وفي __st__ قمنا بارجاع للاسم فقط وفي الاسفل قمنا بتمرير المتغيرات الخاصة بنا والتي نريد مقارنتها وفي الخانة الاولى وضعنا الاسم والثاني العمر وبعدها قمنا بعمل if للاختبار والمقارنة اذا كانت النتيجة صحيحة سوف يخبرنا بان الاول اكبر من الثاني واذا كان العكس سوف يخبرنا بان الثاني اكبر من الاول .

class Person:
    def __init__ (self , name , age) :
        self.name = name
        self.age = age

    def __gt__ (self , other) :
        return True if self.age > other.age else False
    
    def __lt__(self,other) :
        return True if self.age > other.age else False

    def __str__(self) :
        return self.anme
    
n1= Person("ahmed" , 22)
n2= Person("mohamed" , 25)

if n1 > n2 :
    print("n1 greater  than n2")
else :
    print("n2 greater  than n1")
    


كود بايثون لجمع عددين باستخدام oop

كود بايثون لجمع عددين باستخدام oop

كما ذكرت لكم انه يوجد بعض الاوامر نستطيع عملها بعد def وتعمل على ارجاع نتيجة لنا وهنا سوف نستخدم __add__ التي اخبرتكم عنها بالاعلى وفيها سوف نقوم بعملية الجميع والمتغيرات سوف نقوم بتمريرها في الاسفل حيث نكتب الاسم وبعده العمر ونجمع العمرين على بعض وفي النهاية سوف نقوم بطباعتهم في print وسوف يكون مجموع العمر الاول والعمر الثاني وسوف يخرج لنا الناتج يمكنك استخدام اي وظيفة من الاعلى والتجريب عليها .

class Person:
    def __init__ (self , name , age) :
        self.name = name
        self.age = age

    def __gt__ (self , other) :
        return True if self.age > other.age else False

    def __add__(self, other):
        x = self.age + other.age
        return x
    
    def __lt__(self,other) :
        return True if self.age > other.age else False

    def __str__(self) :
        return self.anme
    
n1= Person("ahmed" , 22)
n2= Person("mohamed" , 25)

print("sum age is = ",n1+n2)


كود بايثون لطباعة الرقم الاكاديمي للطالب والتخصص الخاص به

كود بايثون لطباعة الرقم الاكاديمي للطالب والتخصص الخاص به

في هذا الكود لدينا مجموعة من المتيغرات التي سوف نطلب من المستخدم ادخالها مثل الاسم والعمر والمدينة والموقع والرقم الاكاديمي و التخصص الخاص به وسوف نقوم بعمل filter على هذة الاشياء ونطبع فقط الرقم الاكاديمي او id وايضا التخصص الذي قام بادخاله ولا نحتاج لاكثر من هذا في عملية الطباعة يمكنك زيادة المخرجات اذا احببت وهذا مقال من الامثلة البسيطة على استخدام الoop .

class Person:
    def __init__ (self , a , b , c , d) :
        self.a = a
        self.b = b
        self.c = c
        self.d = d

    def info(self) :
        print(f"name {self.a} age is {self.b}")
    
class Student(Person) :
    def __init__(self, name, age , address ,email ,st_id , joined_cources):
        Person.__init__(self, name, age,address ,email)
        self.st_id = st_id
        self.joined_cources = joined_cources

    def info(self) :
        print(f"the id  is {self.st_id} \nthe cources is : {','.join(self.joined_cources)}")

n1 = Student("ahmed" , 21 , "cairo" , "geecoders@geecoder" , "42015698" , ["cs","dev"])
n1.info()


مشروع بايثون باستخدام oop و الclasses 


مشروع بايثون باستخدام oop و الclasses

في هذا المشروع قمنا بعمل مشروعين بايثون الاسم باسم hello_world.py وهذا ما سيحتوي على الكود والاخر باسم main وهذا ما سنقوم بتمرير البيانات فيه وعمل run , بالنسبة للمشروع الاول سوف نقوم بعمل اكثر من def كل واحده منهم مسؤولة عن وظيفة معينة نحتاج لعمل __init__  في البداية لان هذا المسؤول عن تمرير البيانات وبعدها سوف نقوم بعمل اول وظيفة وهي words_with_length وهي مسؤوله عن اخراج جميع الكلمات التي تتكون من ثلاث حروف فقط حيث اذا مررنا في الكود الاساسي الموجود في main الحرف a سيطبع كل الكلمات التي تحتوي على الحرف a وعدد حروفها 3 , ثاني وظيفة وهي start_with ونقوم ايضا بتمرير حرف في main ليطبع كل الكلمات التي تبدء بهذا الحرف من الملف والاخيره ends_with وهي مسؤوله عن طباعة الكلمات التي تنتهي بحرف معين نقوم بتمريره ايضا في main .


بانسبة لكلاس main , هذا الكلاس نكتب فيه اولا استدعاء للمشروع الاخر وتحديدا اسم الكلاس الذي نريدة منه وثانيا تحديد مسار الملف الذي يحتوي على الكلمات يمكنك وضع الكلمات في string الامر راجع لك ولكن الافضل تكون في ملف وسوف اترك لكم رابط تحميل الملف في نهاية المقالة , وفي النهاية نقوم بعملية الطباعة وهي تحديد اسم الكلاس وبعدها المتغير الذي يحوي الكلمات وبعدها اسم def التي نريد استخدمها من كلاس Person وهو الذي قمنا بعمل import له في الاعلى على سبيل المثال قمنا بتحديد start_with نقوم الان بوضع لها متغير ولكن الحرف a بالتالي سيطبع لنا كل الكلمات التي تحتوي على الحرف a في الملف النصي .


ملاحظة : اذا ظهر لك مشكلة في عملية import قد يكون السبب ناتج عن انه لم يتعرف على الملف ولهذا حاول ان تقوم بحفظ الملف الاول وهو hello_world.py عن طريق ctrl + s او الانتقال من نافذة file من ثم auto save لكي يقوم بعمل حفظ تلقائي للاكواد التي تكتب لان هذه المشكلة واجهتني شخصيا وقد تواجة البعض منكم لذلك تاكد دائما من عمل save للمشروع الخاص بك .


# --- hello_world.py ---

class Person:
    def __init__ (self ,list_of_words) -> None:
        self.__word = list_of_words
    
    def words_with_length (self ,length) :
        t = []
        for word in self.__word :
            if len(word) == 3 :
                t.append(word)
        return t

    def start_with(self , string) :
        t = []
        for word in self.__word :
            if word.startswith(string) :
                t.append(word)
        return t

    def ends_with(self , string) :
        t = []
        for word in self.__word :
            if word.endswith(string) :
                t.append(word)
        return t
      
# --- main2.py ---

from hello_world import Person

with open("words.txt" , 'r') as file :
    words = file.read().rsplit(",")

print(Person(words).start_with("a"))



words text


مجموعة امثلة وتطبيقات على oop باستخدام لغة python

الى هنا نكون قد وصلنا معكم الى نهاية مقالة اليوم اتمنى ان تكون المقالة نالت على رضاكم وتكون استغدتم منها ويكون فكرة الoop بالبايثون اصبحت واضحة بالنسبة لكم ولمزيد من الاكواد والشروحات في لغة البايثون يمكنكم مشاهدة الموقع للتعرف على الكثير من الاكواد البرمجية في هذا القسم :

تعليقات