احتراف python: من الأساسيات إلى البرمجة الكائنية (OOP)

تُعتبر لغة Python من بين أكثر لغات البرمجة استخدامًا في العالم اليوم، حيث تجمع بين السهولة والقوة في آنٍ واحد. صُممت لتكون مناسبة لجميع المستويات، مما يجعلها خيارًا مثاليًا سواءً للمبتدئين الذين يرغبون في تعلم البرمجة أو للمحترفين الذين يعملون على مشاريع متقدمة.

Python تُعرف بمرونتها، حيث تُستخدم في مجالات متنوعة مثل تطوير التطبيقات، بناء المواقع الإلكترونية، تحليل البيانات، الذكاء الاصطناعي، وأتمتة العمليات اليومية.

نظرة تاريخية

تم إطلاق لغة Python لأول مرة في سنة 1991 من طرف المبرمج الهولندي Guido van Rossum، الذي أراد إنشاء لغة برمجة سهلة الاستخدام وتساعد المطورين على كتابة كود واضح ومفهوم. الاسم "Python" لا علاقة له بالثعابين كما قد يظن البعض، بل هو مستوحى من برنامج كوميدي بريطاني شهير يُعرف بـ Monty Python's Flying Circus، والذي كان محبوبًا لدى مصمم اللغة "Guido van Rossum".

ما الذي يجعل Python مميزة؟

بسيطة وسهلة التعلم: Python تتميز بتركيبها الذي يشبه اللغة الطبيعية، مما يجعلها مثالية للمبتدئين.
مفتوحة المصدر: يمكن استخدامها وتطويرها مجانًا من قبل أي شخص.
مجتمع قوي: بفضل الانتشار الواسع للغة، يوجد مجتمع كبير من المطورين يشارك الموارد والدعم.
مكتبات وأدوات جاهزة: توفر Python مجموعة من المكتبات القوية مثل NumPy و Pandas و Matplotlib، والتي تُبسط تنفيذ المهام المعقدة وتُساعد المطورين على العمل بكفاءة أعلى.
متعددة الاستخدامات: تصلح لتطوير المواقع، الذكاء الاصطناعي، تحليل البيانات، وغيرها من المجالات.

مجالات استخدام Python

Python:أداة قوية متعددة الاستخدمات ،وليست مجرة لغة برمجة 
تطوير المواقع الإلكترونية باستخدام أطر عمل مثل Django و Flask.
تحليل البيانات وإعداد التقارير باستخدام مكتبات مثل Pandas و Matplotlib.

في مجالات الذكاء الاصطناعي والتعلم الآلي تُعتبر Python الخيار الأمثل ، حيث تُوفر أدوات متطورة مثل TensorFlow وscikit-learn التي تُسهل بناء النماذج الذكية وتحليل البيانات بفعالية.

أتمتة المهام اليومية بكتابة سكربتات بسيطة.
تطوير تطبيقات الهاتف المحمول باستخدام مكتبات مثل Kivy.

Python تُعد الخيار الأمثل لكل من يبحث عن لغة برمجة سهلة التعلم ومتعددة الاستخدامات. بفضل مرونتها، يمكن استخدامها في بناء مشاريع صغيرة أو تطبيقات عملاقة تخدم ملايين المستخدمين.

بيئة التطوير

كيفية إعداد بيئة العمل لبرمجة Python باستخدام Visual Studio Code؟

إذا كنت مبتدئًا في تعلم البرمجة بلغة Python، فمن الأفضل أن تبدأ باستخدام Visual Studio Code (VS Code) كأداة رئيسية. هو محرر أكواد خفيف وقوي في نفس الوقت، ويُعتبر الخيار المثالي للمبتدئين. في هذا الجزء، سنشرح لك كيفية البدء في استخدام Visual Studio Code لكتابة أكواد Python وتنفيذها خطوة بخطوة.

1. تثبيت Visual Studio Code

أول خطوة هي تثبيت Visual Studio Code على جهازك:
رابط التحميل: يمكنك تحميله من الموقع الرسمي  لVisual Studio Code.
بعد التحميل، قم بتثبيته وفقًا للنظام الذي تستخدمه (Windows، macOS، Linux).
للحصول على شرح كامل ومفصل حول كيفية تحميل وتثبيت Visual Studio Code، يمكنك الانتقال إلى هذا الشرح المفصل:

2. تثبيت Python


لكي تبدأ في برمجة Python، يجب أولًا تثبيت Python على جهازك:
تحميل Python: يمكنك تحميل آخر نسخة من Python من الموقع الرسمي.
بعد التثبيت، تأكد أن Python تم تثبيتها بشكل صحيح عبر فتح Command Prompt أو Terminal وكتابة:
python --version
إذا ظهر لك رقم النسخة، فهذا يعني أن Python تم تثبيتها بشكل صحيح.

3. إضافة ملحق Python في Visual Studio Code

لكي تتمكن من كتابة وتشغيل أكواد Python داخل VS Code، يجب أن تقوم بتثبيت الملحق الخاص بـ Python:
افتح Visual Studio Code.
انتقل إلى Extensions (الرمز الخاص بالمكعبات في الجهة اليسرى).
في مربع البحث، اكتب "Python" واختر أول ملحق (الذي طورته Microsoft) وقم بتثبيته.

4. إعداد بيئة العمل (Workspace) في Visual Studio Code

بعد تثبيت Python و Visual Studio Code، افتح VS Code وابدأ مشروعًا جديدًا.
يمكنك فتح مجلد جديد أو استخدام مجلد موجود بالفعل.
لإنشاء ملف Python جديد، انتقل إلى File > New File أو استخدم الاختصار (Ctrl + N)، ثم احفظ الملف بالامتداد py.(على سبيل المثال hello.py).

5. كتابة أول برنامج بلغة Python

الآن، بعد إعداد بيئة العمل، يمكنك كتابة أول برنامج بلغة Python. جرب كتابة الكود التالي:
print("Hello, World!")
سيقوم هذا الكود بطباعة النص "!Hello, World" في Terminal.

6. تشغيل البرنامج في Visual Studio Code

لتشغيل البرنامج داخل VS Code، افتح Terminal داخل البرنامج عبر Terminal > New Terminal.
في التيرمينال، اكتب:
python name_file.py
على سبيل المثال:
python hello.py
ستظهر لك رسالة "!Hello, World" في التيرمينال.

7. استخدام أدوات تصحيح الأخطاء (Debugging)

من بين الميزات التي يقدمها Visual Studio Code هي أداة Debugger التي تساعدك في تصحيح الأخطاء:
ضع نقطة توقف (Breakpoint) في الكود عن طريق النقر على الجهة اليسرى من السطر.
بعد ذلك، من القائمة العلوية، اختر Run > Start Debugging أو اضغط F5 لتشغيل الكود في وضع التصحيح.

8. نصائح لتطوير بيئة العمل

التكملة التلقائية (IntelliSense): يقدم VS Code خاصية التكملة التلقائية أثناء الكتابة، مما يساعد في تسريع الكتابة وتقليل الأخطاء.
التنسيق التلقائي للكود: يمكنك إضافة ملحقات مثل Prettier لتنسيق الكود بشكل تلقائي.
خلاصة
بفضل Visual Studio Code، يمكنك بدء تعلم البرمجة بلغة Python بسهولة وبسرعة. كل ما عليك هو تثبيت الأدوات اللازمة وكتابة أول برنامج بسيط، ثم تبدأ في استكشاف المزيد من خصائص VS Code لتطوير مهاراتك في البرمجة.

الطباعة (Printing in Python)

الطباعة في Python هي عملية عرض النصوص أو القيم على الشاشة. يتم ذلك باستخدام دالة ()print، وهي من أبسط الأدوات في Python.
الهدف من الطباعة:
الهدف من الطباعة هو عرض النتائج أو الرسائل للمستخدم أثناء تنفيذ البرنامج. يمكنك طباعة نصوص، أرقام، أو نتائج عمليات حسابية، أو حتى محتويات متغيرات.
كيفية استخدام الطباعة:
الطباعة تتم باستخدام دالة ()print. تأخذ دالة ()print قيمة واحدة على الأقل كمدخل، والتي هي النص أو المتغير الذي ترغب في طباعته.
الصيغة الأساسية:
print(value)
حيث value هي النص أو المتغير أو القيمة التي تريد طبعها.
أمثلة على الطباعة:
طباعة نص ثابت:
print("Hello, World!")
الشرح:
في هذا المثال، نطبع النص "!Hello, World" على الشاشة باستخدام دالة ()print.
طباعة قيمة متغير:
x = 10
print(x)
الشرح:
هنا قمنا بتخزين القيمة 10 في المتغير x، ثم قمنا بطباعة قيمة المتغير x باستخدام دالة ()print.
طباعة عدة قيم معًا:
name = "Bader"
age = 25
print("Name:", name, "Age:", age)
الشرح:
في هذا المثال، نقوم بطباعة النص ":Name"، ثم قيمة المتغير name، ثم النص ":Age"، وأخيرًا قيمة المتغير age. القيم تظهر معًا في سطر واحد مفصولًا بمسافات.
طباعة باستخدام التنسيق (f-string):
name = "Moussa"
age = 30
print(f"Name: {name}, Age: {age}")
الشرح:
هنا نستخدم f-string (تنسيق السلسلة النصية) لدمج المتغيرات داخل النصوص بطريقة سهلة وواضحة.
علامات الاقتباس في Python
في Python، نستخدم علامات الاقتباس لتحديد النصوص (Strings). هناك نوعان من علامات الاقتباس التي يمكنك استخدامها:
علامات الاقتباس الفردية (')
علامات الاقتباس المزدوجة (")
يمكنك استخدام أي نوع من علامات الاقتباس طالما أن النص يبدأ وينتهي بنفس النوع.
1. علامات الاقتباس الفردية ('):
الصيغة:
string = 'This is a string'
الشرح:
هنا نستخدم علامات الاقتباس الفردية لتحديد النص This is a string.
2. علامات الاقتباس المزدوجة ("):
الصيغة:
string = "This is another string"
الشرح:
هنا نستخدم علامات الاقتباس المزدوجة لتحديد النص "This is another string".
3. عندما نستخدم علامات الاقتباس المزدوجة داخل النص:
إذا كان النص يحتوي على علامات اقتباس فردية داخل النص، يمكنك استخدام علامات الاقتباس المزدوجة حول النص:
text = "It's a beautiful day!"
print(text)
الشرح:
هنا استخدمنا علامات الاقتباس المزدوجة لأن النص يحتوي على علامة اقتباس فردية داخل النص.
4. نصوص متعددة الأسطر باستخدام علامات الاقتباس المزدوجة أو الفردية الثلاثية:
الصيغة:
text = """This is a multi-line
string that spans across
several lines."""
print(text)
الشرح:
نستخدم علامات الاقتباس المزدوجة الثلاثية """ لكتابة نصوص تمتد على عدة أسطر. هذه الطريقة تجعل النص أكثر وضوحًا وتنظيمًا.

التعليقات (Comments in Python)

التعليقات هي نصوص تُكتب في الكود لشرح أو توضيح أجزاء الكود. Python يسمح باستخدام نوعين من التعليقات:
التعليق الأحادي السطر: يتم باستخدام الرمز #.
التعليق متعدد الأسطر: يتم باستخدام ''' أو """.
1. التعليق الأحادي السطر (Single-line Comment)
يتم استخدام الرمز # للتعليق على سطر واحد. كل ما يلي الرمز # في السطر لا يتم تنفيذه من قبل البرنامج.
أمثلة:
 #هذا تعليق على سطر واحد
print("Hello, World!")
الشرح:
في هذا المثال، يتم استخدام # للتعليق على السطر الأول، ولن يؤثر هذا على تنفيذ السطر الثاني الذي يحتوي على دالة ()print.
2. التعليق متعدد الأسطر (Multi-line Comment)
إذا كنت بحاجة إلى إضافة تعليق يمتد عبر عدة أسطر، يمكنك استخدام ''' أو """. هذه الطريقة مفيدة لكتابة شروحات طويلة.
أمثلة:
'''
هذا تعليق متعدد الأسطر
يمكن كتابة شروحات موسعة هنا
حول الكود أو منطق عمله.
'''
print("Hello, World!")
الشرح:
هنا، تم استخدام ''' لكتابة تعليق يمتد عبر عدة أسطر. لا يؤثر هذا على تنفيذ الكود.
أو باستخدام """:
"""
هذا تعليق آخر باستخدام ثلاث علامات اقتباس مزدوجة.
يمكن كتابة شروحات موسعة هنا.
"""
print("Hello, World!")
الشرح:
في هذا المثال، استخدمنا """ للتعليق عبر عدة أسطر.
3. أهمية التعليقات
توثيق الكود: تساعد التعليقات في شرح وظيفة أجزاء الكود للمبرمجين الآخرين أو لنفسك عند العودة إلى الكود لاحقًا.
إيقاف جزء من الكود: يمكن استخدام التعليقات لإيقاف جزء من الكود أثناء التجربة أو التصحيح.
خلاصة:
الطباعة في Python تتم باستخدام دالة ()print، وهي تستخدم لعرض النصوص أو القيم على الشاشة.
علامات الاقتباس تُستخدم لتحديد النصوص، ويمكن أن تكون فردية أو مزدوجة حسب الحاجة.
التعليقات تُستخدم لكتابة ملاحظات توضيحية داخل الكود باستخدام # للتعليق على سطر واحد أو ''' و """ للتعليقات متعددة الأسطر.

(Variables in Python) Python المتغيرات في

المتغيرات هي أدوات تُستخدم لتخزين البيانات في البرامج. تُعد من أساسيات البرمجة لأنها تُتيح للمبرمج تخزين المعلومات وإعادة استخدامها أو التعديل عليها أثناء تنفيذ البرنامج.
تعريف المتغيرات (Variable Declaration)
في Python، لا تحتاج إلى تحديد نوع المتغير مسبقًا، لأن اللغة تُحدد النوع تلقائيًا بناءً على القيمة المُسندة.
الصيغة الأساسية:
variable_name = value
variable_name: اسم المتغير.
value: القيمة التي ترغب في تخزينها داخل المتغير.
أمثلة على تعريف المتغيرات:
تخزين نصوص:
city = "Casablanca"
تخزين أرقام صحيحة:
year = 2025
تخزين أرقام عشرية:
temperature = 23.5
تخزين قيم منطقية:
is_open = True
قواعد تسمية المتغيرات
عند اختيار اسم المتغير، يجب اتباع القواعد التالية:
يجب أن يبدأ بحرف أو بـ _ (Underscore):
صحيح: name, _age
خاطئ: 1 name, -city
يمكن أن يحتوي الاسم على أحرف وأرقام و_:
صحيح: user_name, age25
خاطئ: user-name, price$
Python حساسة لحالة الأحرف (Case-sensitive):
Name و**name** هما متغيران مختلفان.
لا يمكن استخدام الكلمات المحجوزة كأسماء للمتغيرات:
مثل: if, while, for, True, False.
أنواع البيانات في Python
Python يدعم أنواعًا متعددة من البيانات التي يمكن تخزينها داخل المتغيرات:
النصوص (Strings):
تُخزن النصوص باستخدام علامات الاقتباس الفردية (') أو المزدوجة (").
message = "Welcome to Python"
الأعداد الصحيحة (Integers):
تُستخدم لتخزين أرقام صحيحة.
count = 100
الأعداد العشرية (Floats):
تُستخدم لتخزين الأرقام ذات الفاصلة العشرية.
price = 19.99
القيم المنطقية (Booleans):
تُستخدم لتخزين True أو False.
is_valid = False
القوائم (Lists):
تُستخدم لتخزين عدة قيم داخل متغير واحد.
colors = ["red", "green", "blue"]
القواميس (Dictionaries):
تُستخدم لتخزين البيانات على شكل أزواج مفتاح-قيمة.
student = {"name": "Moussa", "age": 22}
استخدام المتغيرات مع الطباعة
يمكنك عرض القيم المخزنة داخل المتغيرات باستخدام دالة ()print.
أمثلة:
طباعة قيمة متغير:
username = "Moussa"
print("User:", username)
دمج النصوص مع المتغيرات:
balance = 150.75
print(f"Your current balance is: {balance} USD")
الشرح:
""f: يشير الحرف f الموجود قبل النص إلى أن النص هو نص منسق (formatted string).
باستخدام النصوص المنسقة، يمكننا إدراج القيم المخزنة في المتغيرات مباشرة داخل النص.
{balance}: الأقواس المعقوفة تُستخدم لإدراج قيمة المتغير balance داخل النص.
النتيجة:
Your current balance is: 150.75 USD
العمليات الحسابية على المتغيرات:
width = 5
height = 10
area = width * height
print("Area:", area)
تغيير قيم المتغيرات
يمكنك تغيير قيمة المتغير في أي وقت أثناء تنفيذ البرنامج.
مثال:
status = "active"
status = "inactive"
print("Updated Status:", status)
النتيجة:
Updated Status: inactive
حذف المتغيرات
لحذف متغير لم تعد بحاجة إليه، استخدم الدالة del.
مثال:
x = 100
print(x)
del x
# print(x) .يؤدي إلى خطأ لأن المتغير تم حذفه
خلاصة:
المتغيرات هي أدوات تُستخدم لتخزين البيانات.
يمكن تخزين أنواع مختلفة من البيانات داخل المتغيرات.
يجب اتباع قواعد التسمية لضمان أن تكون أسماء المتغيرات صحيحة وواضحة.
المتغيرات قابلة للتعديل أو الحذف حسب الحاجة.

(Data Types in PythonPython أنواع البيانات في

Python توفر مجموعة غنية من أنواع البيانات التي يمكنك استخدامها لتخزين مختلف أنواع المعلومات. يمكن تقسيم هذه الأنواع إلى:
أنواع البيانات الأساسية (Basic Data Types): تُستخدم لتخزين النصوص، الأرقام، والقيم المنطقية.
الهياكل المعقدة (Complex Data Structures): تُستخدم لتخزين بيانات أكثر تعقيدًا، مثل القوائم والقواميس.
1. الأنواع الأساسية
النصوص (Strings):
تُستخدم لتخزين النصوص مثل الكلمات أو الجمل.
يتم تعريف النصوص باستخدام علامات الاقتباس المفردة (') أو المزدوجة (").
مثال:
name = "Moussa"
greeting = 'Hello, World!'
print(name)
print(greeting)
النتيجة:
Moussa
Hello, World!
الأعداد الصحيحة (Integers):
تُستخدم لتخزين الأرقام الصحيحة (بدون فاصلة عشرية).
مثال:
age = 25
year = 2025
print(age)
print(year)
النتيجة:
25
2025
الأعداد العشرية (Floats):
تُستخدم لتخزين الأرقام ذات الفاصلة العشرية.
مثال:
price = 19.99
distance = 12.5
print(price)
print(distance)
النتيجة:
19.99
12.5
القيم المنطقية (Booleans): 
تُستخدم لتخزين قيمتين فقط: True أو False.
مثال:
is_active = True
is_logged_in = False
print(is_active)
print(is_logged_in)
النتيجة:
True
False
2. الهياكل المعقدة
القوائم (Lists):
تُستخدم لتخزين مجموعة من القيم بترتيب معين.
يمكن أن تضم عناصر من أنواع بيانات مختلفة.
مثال:
fruits = ["apple", "banana", "cherry"]
print(fruits)
print(fruits[0])  # طباعة العنصر الأول
النتيجة:
['apple', 'banana', 'cherry']
apple
القواميس (Dictionaries):
تُستخدم لتخزين البيانات على شكل أزواج من المفتاح والقيمة.
مثال:
student = {"name": "Moussa", "age": 22, "grade": "A"}
print(student)
print(student["name"])  # 'name' طباعة قيمة المفتاح 
النتيجة:
{'name': 'Moussa', 'age': 22, 'grade': 'A'}
Moussa
شرح الكود:
تعريف القاموس:
student = {"name": "Moussa", "age": 22, "grade": "A"}

القاموس يحتوي على ثلاثة أزواج من المفاتيح والقيم:
المفتاح "name" وقيمته "Moussa".
المفتاح "age" وقيمته 22.
المفتاح "grade" وقيمته "A".
طباعة القاموس بأكمله:
print(student)
يُظهر محتويات القاموس على شكل أزواج مفتاح: قيمة.
طباعة قيمة المفتاح "name":
print(student["name"])  #  'name'  طباعة قيمة المفتاح
يستخرج قيمة المفتاح "name" من القاموس، وهي "Moussa"#
النتيجة:
{'name': 'Moussa', 'age': 22, 'grade': 'A'}
Moussa
المجموعات (Sets):
تُستخدم لتخزين مجموعة من القيم غير المكررة وغير المرتبة.
مثال:
unique_numbers = {1, 2, 3, 3, 4}
print(unique_numbers)
النتيجة:
{1, 2, 3, 4}
الصفوف (Tuples):
تُستخدم لتخزين مجموعة من القيم التي لا يمكن تعديلها (غير قابلة للتغيير).
مثال:
coordinates = (10, 20)
print(coordinates)
النتيجة:
(10, 20)
تحويل أنواع البيانات (Type Conversion)
يمكنك تحويل نوع البيانات من نوع إلى آخر باستخدام الدوال المدمجة مثل:
()int لتحويل النصوص أو الأرقام العشرية إلى أعداد صحيحة.
()float لتحويل النصوص أو الأعداد الصحيحة إلى أرقام عشرية.
()str لتحويل الأرقام أو القيم الأخرى إلى نصوص.
مثال:
# تحويل النص إلى عدد صحيح
number = int("10")
print(number)
# تحويل العدد الصحيح إلى نص
text = str(25)
print(text)
# تحويل العدد الصحيح إلى عدد عشري
decimal = float(5)
print(decimal)
النتيجة:
10
25
5.0
خلاصة:
النصوص: تُستخدم لتخزين النصوص باستخدام علامات الاقتباس.
الأعداد الصحيحة والعشرية: تُستخدم لتخزين الأرقام.
القيم المنطقية: تُستخدم لتخزين True أو False.
الهياكل المعقدة: مثل القوائم والقواميس تُتيح تخزين بيانات منظمة.

(Conditional Statements) Python الشروط في

الشروط تُستخدم لاتخاذ قرارات في البرمجة. تسمح لك بتحديد ما إذا كان يجب تنفيذ جزء معين من الكود بناءً على تحقق شرط معين أم لا. في Python، هناك ثلاث عبارات شرطية أساسية:
if: تتحقق من شرط واحد.
elif: تُستخدم لفحص شروط إضافية في حال لم يتحقق الشرط الأول.
else: تنفذ إذا كانت جميع الشروط السابقة غير صحيحة.
1. العبارة الشرطية if:
if تُستخدم للتحقق من شرط واحد فقط. إذا كان الشرط صحيحًا (أي القيم التي تحقق الشرط تكون صحيحة)، يتم تنفيذ الكود داخل الجملة if.
مثال:
age = 18
if age >= 18:
    print("You are an adult.")
الشرح:
هنا، يتم التحقق إذا كانت قيمة المتغير age أكبر من أو تساوي 18.
إذا تحقق الشرط، يتم طباعة ".You are an adult"
النتيجة:
You are an adult.
2. العبارة الشرطية elif:
elif تُستخدم عندما نريد التحقق من شروط إضافية. إذا لم يتحقق الشرط في if، يمكننا التحقق من شروط أخرى باستخدام elif.
مثال:
age = 16
if age >= 18:
    print("You are an adult.")
elif age >= 13:
    print("You are a teenager.")
الشرح:
إذا كانت قيمة age أكبر من أو تساوي 18، سيتم تنفيذ الكود داخل if.
إذا لم يتحقق الشرط الأول، ننتقل إلى elif للتحقق من شرط آخر (في هذه الحالة، إذا كانت age أكبر من أو تساوي 13).
إذا تحقق الشرط في elif، يتم طباعة "You are a teenager."
النتيجة:
You are a teenager.
3. العبارة الشرطية else:
تُستخدم else لتنفيذ الكود في حال لم تتحقق أي من الشروط السابقة (أي إذا كانت الشروط في if و elif غير صحيحة).
مثال:
age = 10
if age >= 18:
    print("You are an adult.")
elif age >= 13:
    print("You are a teenager.")
else:
    print("You are a child.")
الشرح:
إذا لم يتحقق الشرط في if (أي أن age أصغر من 18) ولم يتحقق الشرط في elif (أي أن age أصغر من 13)، سيتم تنفيذ الكود في else.
النتيجة:
You are a child.
خلاصة:
if: تتحقق من شرط واحد. إذا كان صحيحًا، يتم تنفيذ الكود.
elif: تتحقق من شروط أخرى إذا لم يتحقق الشرط في if.
else: تنفذ الكود إذا لم تتحقق أي من الشروط السابقة.

(Loops) Python الحلقات في

الحلقات تُستخدم لتنفيذ جزء من الكود عدة مرات، مما يسهل تكرار العمليات بدون الحاجة لكتابة الكود عدة مرات.
أنواع الحلقات في Python:
حلقة for:
تُستخدم لتكرار الكود عبر مجموعة من العناصر (مثل القوائم، المجموعات، أو المدى).
حلقة while:
تُستخدم لتكرار الكود طالما أن شرطًا معينًا لا يزال صحيحًا.
1. حلقة for:
تُستخدم حلقة for لتكرار الكود عبر عناصر في تسلسل معين (مثل قائمة أو مجموعة أو نطاق).
مثال:
for i in range(5):
    print(i)
الشرح:
range(5) يُولد أرقامًا من 0 إلى 4.
يتم تكرار الكود داخل الحلقة خمس مرات.
النتيجة:
0
1
2
3
4
2. حلقة while:
تُستخدم حلقة while لتكرار الكود طالما كان الشرط صحيحًا.
مثال:
i = 0
while i < 5:
    print(i)
    i += 1
الشرح:
يبدأ المتغير i من 0، ويتم التحقق من الشرط i < 5.
طالما أن الشرط صحيح، سيتم طباعة i وزيادته بمقدار 1 في كل مرة.
النتيجة:
0
1
2
3
4
خلاصة:
حلقة for: تُستخدم للتكرار عبر عناصر في تسلسل.
حلقة while: تُستخدم للتكرار طالما كان الشرط صحيحًا.

الدوال(Functions) في Python

الدوال تسمح لك بكتابة الكود مرة واحدة فقط ثم استدعاءه في أي وقت تحتاج فيه إلى تنفيذ نفس العملية.
تعريف الدالة:
تُعرّف الدالة باستخدام الكلمة المفتاحية def، تليها اسم الدالة، ثم المعاملات (إن وجدت)، وأخيرًا الكود الذي ينفذ داخل الدالة.
مثال:
def greet(name):
    print(f"Hello, {name}!")
الشرح:
def greet(name): هي الطريقة التي نعرّف بها الدالة.
name هو المعامل الذي سيتم تمريره إلى الدالة.
الدالة تقوم بطباعة رسالة ترحيب.
استدعاء الدالة:
يمكنك استدعاء الدالة باستخدام اسمها مع تمرير المعاملات المطلوبة.
مثال:
greet("Moussa")
النتيجة:
Hello, Moussa!
إرجاع قيمة من الدالة:
الدوال يمكن أن تُعيد قيمة باستخدام الكلمة المفتاحية return.
مثال:
def add(a, b):
    return a + b
استدعاء الدالة:
result = add(5, 3)
print(result)
النتيجة:
8
خلاصة:
تعريف الدالة: يتم باستخدام def متبوعًا باسم الدالة والمعاملات.
استدعاء الدالة: باستخدام اسم الدالة مع المعاملات المطلوبة.
إرجاع قيمة: باستخدام الكلمة المفتاحية return.

(Exceptions) Python الاستثناءات في  

الاستثناءات هي آلية في Python لإدارة الأخطاء التي قد تحدث أثناء تنفيذ البرنامج، مثل محاولة القسمة على صفر أو محاولة الوصول إلى عنصر في قائمة خارج نطاقها.
تعريف الاستثناءات:
تُستخدم الكلمة المفتاحية try لتحديد الكود الذي قد يتسبب في حدوث خطأ، والكلمة المفتاحية except لمعالجة الخطأ إذا حدث.
مثال:
try:
    x = 5 / 0
except ZeroDivisionError:
    print("Cannot divide by zero!")
الشرح:
الكود داخل try يحاول القسمة على صفر، وهو غير مسموح به.
إذا حدث الخطأ، يتم الانتقال إلى except وتنفيذ الكود الموجود داخلها.
النتيجة:
Cannot divide by zero!
الاستثناءات المتعددة:
يمكنك معالجة أنواع متعددة من الأخطاء باستخدام عدة جمل except.
مثال:
try:
    x = int(input("Enter a number: "))
    result = 10 / x
except ZeroDivisionError:
    print("Cannot divide by zero!")
except ValueError:
    print("Please enter a valid number!")
الشرح:
إذا قام المستخدم بإدخال قيمة غير عددية، سيتم التعامل مع الخطأ ValueError.
إذا قام المستخدم بإدخال صفر، سيتم التعامل مع الخطأ ZeroDivisionError.
خلاصة:
try: يستخدم لوضع الكود الذي قد يسبب استثناء.
except: يستخدم لمعالجة الأخطاء التي تحدث.
يمكن استخدام أكثر من except لمعالجة أنواع مختلفة من الأخطاء.

البرمجة الكائنية التوجه (OOP) في Python

البرمجة الكائنية التوجه (Object-Oriented Programming - OOP) هي نموذج برمجي يُستخدم لتنظيم الكود بطريقة تجعل تطوير البرامج أسهل وأكثر كفاءة. يعتمد هذا النموذج على مفهوم الكائنات (Objects) التي تحتوي على البيانات (Attributes) والوظائف (Methods) الخاصة بها، مما يتيح إعادة استخدام الكود وتسهيل صيانته.

في هذا المقال، سنتناول جميع مفاهيم OOP في Python مع أمثلة عملية مشروحة بالتفصيل، بحيث يتمكن أي شخص من فهمها وتطبيقها بسهولة.

المفاهيم الأساسية في OOP مع أمثلة مفصلة

1. الكائنات (Objects) والفئات (Classes)
الفئة (Class) هي القالب الذي يتم من خلاله إنشاء الكائنات، أما الكائن (Object) فهو نسخة من هذه الفئة تحتوي على بياناتها الخاصة.
مثال عملي:
          
class Device:
def __init__
(self, brand, model):
self.brand = brand # خاصية
self.model = model # خاصية
def show_info(self):
print(f"Device Brand: {self.brand}, Model: {self.model}")
# إنشاء كائن من الفئة
device1 = Device("Apple", "iPhone 15")
device1.show_info()

الشرح:

  • class Device: تعريف فئة باسم Device.
  • __init__: دالة المُنشئ تُستخدم لتهيئة الكائنات بقيم أولية.
  • self.brand و self.model: خصائص الكائن (Attributes).
  • show_info(): دالة لطباعة معلومات الكائن.
  • device1 = Device("Apple", "iPhone 15"): إنشاء كائن جديد من الفئة.
2. التغليف (Encapsulation)

التغليف يعني حماية البيانات من الوصول غير المصرح به من خارج الفئة، ويتم ذلك باستخدام المتغيرات الخاصة (__).

مثال عملي:
class BankAccount:
def __init__(self, balance):
self.__balance = balance # الخاصية الخاصة
def deposit(self, amount):
self.__balance += amount
def withdraw(self, amount):
if amount <= self.__balance:
self.__balance -= amount
else:
print("Insufficient balance")
def get_balance(self):
return self.__balance
# إنشاء حساب بنكي
account = BankAccount(1000)
account.deposit(500)
account.withdraw(300)
print(account.get_balance()) # الإخراج: 1200
الشرح:
  • self.__balance: خاصية خاصة لا يمكن الوصول إليها مباشرة من خارج الفئة.
  • ()get_balance: دالة تمكّننا من قراءة قيمة الرصيد بطريقة آمنة.
3. الوراثة (Inheritance)

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

مثال عملي:
class Vehicle:
def __init__(self, brand):
self.brand = brand
def move(self):
return "This vehicle moves."
class Car(Vehicle):
def move(self):
return "The car drives on the road."
class Airplane(Vehicle):
def move(self):
return "The airplane flies in the sky."
# إنشاء كائنات
car = Car("Toyota")
plane = Airplane("Boeing")
print(car.brand, "-" , car.move())
print(plane.brand, "-", plane.move())
الشرح:
  • class Car(Vehicle): الفئة Car ترث من Vehicle.
  • ()move: دالة مختلفة في كل فئة فرعية.
4. تعدد الأشكال (Polymorphism)

يتيح تعدد الأشكال استخدام نفس الدالة مع تنفيذ مختلف حسب الفئة.

مثال عملي:
devices = [Car("Honda"), Airplane("Airbus")]
for device in devices:
print(device.brand, "-", device.move())
الشرح:
  • ()move تعمل بشكل مختلف حسب نوع الكائن دون الحاجة لمعرفة نوعه مسبقًا.
5. التجريد (Abstraction)

التجريد يعني إخفاء التفاصيل غير الضرورية وإبراز الوظائف الأساسية باستخدام الفئات المجردة.

مثال عملي:
from abc import ABC, abstractmethod
class Appliance(ABC):
@abstractmethod
def operate(self):
pass
class WashingMachine(Appliance):
def operate(self):
return "The washing machine starts washing."
class Microwave(Appliance):
def operate(self):
return "The microwave heats the food."
washer = WashingMachine()
microwave = Microwave()
print(washer.operate())
print(microwave.operate())

الشرح:

  • Appliance فئة مجردة تحتوي على دالة operate() بدون تنفيذ.
  • WashingMachine و Microwave توفران تنفيذًا خاصًا للدالة ()operate.
6. تجاوز الدوال (Method Overriding)

يسمح تجاوز الدوال بإعادة تعريف دالة في الفئة الفرعية مع الاحتفاظ بنفس الاسم.

مثال عملي:
class OperatingSystem:
def boot(self):
print("Booting the system...")
class Linux(OperatingSystem):
def boot(self):
print("Booting into Linux...")
os = Linux()
os.boot()

الشرح:

  • Linux أعادت تعريف ()boot فعند استدعائها يتم تنفيذ الدالة الجديدة بدلًا من القديمة.
خلاصة

تعرّفنا على أهم مفاهيم البرمجة الكائنية التوجه (OOP) في Python، وهي:

  1. الفئات والكائنات لإنشاء كود منظم.
  2. التغليف لحماية البيانات من الوصول غير المصرح به.
  3. الوراثة لإعادة استخدام الكود بطريقة فعالة.
  4. تعدد الأشكال لاستخدام نفس الدالة بطرق مختلفة.
  5. التجريد لإخفاء التفاصيل الداخلية وإبراز الوظائف الأساسية.
  6. تجاوز الدوال لتخصيص السلوك في الفئات الفرعية.
باتباع هذه المبادئ، يمكنك كتابة برامج قوية، مرنة، وسهلة التوسيع في Python. 🚀
إليك روابط بعض المشاريع التي ستساعدك على تطبيق ما تعلمته في هذه الدورة:
تعليقات