بايثون شعار برمجة بتدرج أرجواني

المسار الكامل
لتعلم البرمجة
بلغة بايثون

من الصفر إلى الاحتراف: دليل شامل لبناء أساس متين وإتقان التطبيقات المتقدمة

ابدأ رحلتك

تعلم البرمجة من الأساسيات وحتى تطبيقات الذكاء الاصطناعي وتطوير الويب

مسار تعلم واضح

9 مراحل متكاملة تغطي كل جوانب اللغة وتطبيقاتها العملية

الملخص التنفيذي

أصبحت لغة بايثون واحدة من أكثر لغات البرمجة طلبًا في سوق العمل، حيث تحتل المرتبة الأولى في العديد من الاستطلاعات التقنية. هذا الدليل الشامل يقدم مسارًا منظماً لتعلم بايثون من الأساسيات وحتى المستويات المتقدمة، مع التركيز على التطبيقات العملية وسد الفجوة بين النظرية والتطبيق.

9 مراحل تعلمية

من أساسيات اللغة إلى تطوير تطبيقات الويب والذكاء الاصطناعي

تطبيقات عملية

مشاريع واقعية تغطي علوم البيانات، الويب، والأتمتة

منهج متكامل

دمج النظرية مع الممارسة لضمان الفهم العميق

يتضمن هذا المسار التوجيهي أساسيات البرمجة، هياكل البيانات، البرمجة الكائنية، التعامل مع الملفات، استخدام المكتبات، قواعد البيانات، واجهات المستخدم، وتطوير الويب باستخدام أطر عمل حديثة. تم تصميم المحتوى ليكون مناسبًا للمبتدئين تمامًا مع توفير العمق الكافي للمتعلمين المتقدمين.

أساسيات لغة بايثون

1.1 التعرف على لغة بايثون ومجالات استخدامها

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

مجالات استخدام بايثون:

  • تطوير الويب: باستخدام أطر عمل مثل Django وFlask
  • علوم البيانات: مع مكتبات مثل NumPy وPandas وScikit-learn
  • الذكاء الاصطناعي: وتعلم الآلة والتعلم العميق
  • الأتمتة: أتمتة المهام المتكررة وإنشاء البرامج النصية

1.2 تثبيت بايثون وإعداد بيئة التطوير

يمكن تنزيل أحدث إصدار من بايثون من الموقع الرسمي python.org 10 25. أثناء عملية التثبيت، من المهم التأكد من تحديد خيار "Add Python to PATH" إذا كنت تستخدم نظام ويندوز، فهذا يسمح لك بتشغيل بايثون من أي مكان في سطر الأوامر66.

# إنشاء أول برنامج "Hello, World!" print("Hello, World!")

1.3 أنواع البيانات الأساسية

أنواع البيانات الأساسية في بايثون تشمل الأعداد الصحيحة (int)، الأعداد العشرية (float)، النصوص (str)، والقيم المنطقية (bool). بايثون تدعم الكتابة الديناميكية، حيث يتم تحديد نوع المتغير تلقائيًا بناءً على القيمة المعينة له67.

# تعريف المتغيرات بأنواع مختلفة x = 5 # int y = "Hello" # str z = 3.14 # float is_valid = True # bool # التحقق من نوع المتغير print(type(x)) # <class 'int'>

هياكل البيانات في بايثون

2.1 القوائم (Lists) وطرق التعامل معها

القوائم (Lists) في بايثون هي هياكل بيانات قابلة للتغيير (Mutable) ومتسلسلة (Ordered) يمكنها تخزين مجموعة من العناصر من أنواع بيانات مختلفة67.

# إنشاء قائمة my_list = [1, "Hello", 3.14, True, [1, 2, 3]] # الوصول إلى العناصر print(my_list[0]) # 1 print(my_list[1:3]) # ['Hello', 3.14] # تعديل العناصر my_list[1] = "Python" # إضافة عناصر my_list.append("new item") my_list.insert(1, "inserted item")

2.2 القواميس (Dictionaries) وفهرستها

القواميس (Dictionaries) تخزن البيانات كأزواج مفتاح-قيمة (Key-Value Pairs). المفاتيح يجب أن تكون من نوع بيانات غير قابل للتغيير، بينما يمكن أن تكون القيم من أي نوع67.

# إنشاء قاموس my_dict = {"name": "Alice", "age": 25, "city": "New York"} # الوصول إلى القيم print(my_dict["name"]) # Alice print(my_dict.get("age")) # 25 # إضافة أو تعديل العناصر my_dict["email"] = "[email protected]" # إضافة my_dict["age"] = 26 # تعديل # حذف العناصر age = my_dict.pop("age") del my_dict["city"]

2.3 مقارنة هياكل البيانات

الميزة القوائم (List) الصفوف (Tuple) المجموعات (Set) القواميس (Dict)
التسلسل نعم نعم لا نعم (من 3.7+)
قابلية التغيير نعم لا نعم نعم
الفهرسة بالفهرس بالفهرس لا يوجد بالمفتاح

الدوال في بايثون

3.1 تعريف الدوال واستدعاؤها

الدوال (Functions) هي كتل من الكود قابلة لإعادة الاستخدام تؤدي مهمة محددة. تساعد الدوال في تنظيم الكود إلى أجزاء أصغر وأكثر قابلية للإدارة67.

# تعريف دالة def greet(name): """هذه الدالة تُرحب بالشخص المحدد.""" print(f"Hello, {name}!") # استدعاء الدالة greet("Alice") greet("Bob")

3.2 معاملات الدوال والقيم المرجعة

يمكن للدوال قبول معاملات (Parameters) وإعادة قيم (Return Values). بايثون تدعم أنواعًا مختلفة من المعاملات مثل المطلوبة، الافتراضية، وسائط الكلمات المفتاحية، والمعاملات العشوائية.

# معاملات افتراضية def greet(name, message="Hello"): print(f"{message}, {name}!") greet("Alice") # Hello, Alice! greet("Bob", "Hi") # Hi, Bob! # معاملات عشوائية def make_pizza(*toppings): print("Making a pizza with:") for topping in toppings: print(f"- {topping}") make_pizza("pepperoni") make_pizza("mushrooms", "green peppers", "extra cheese")

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

4.1 مفاهيم OOP الأساسية

البرمجة الكائنية التوجه (OOP) هي نموذج برمجة يعتمد على مفهوم "الكائنات" (Objects)، والتي يمكن أن تحتوي على بيانات (سمات) وشفرة (طرق). الفكرة الأساسية هي تجميع البيانات والوظائف التي تعمل على هذه البيانات في كائن واحد.

الصف (Class)

مخطط أو نموذج لإنشاء الكائنات. يحدد السمات والطرق.

الكائن (Object)

نسخة (instance) من صف معين. تمتلك بياناتها ووظائفها الخاصة.

السمة (Attribute)

متغير يخزن البيانات الخاصة بالكائن.

الطريقة (Method)

دالة محددة داخل الصف تعمل على بيانات الكائن.

4.2 تعريف الأصناف وإنشاء الكائنات

# تعريف صف class Dog: # سمة صف (Class Attribute) species = "Canis familiaris" # المنشئ (Constructor) def __init__(self, name, age): # سمات النسخة (Instance Attributes) self.name = name self.age = age # طريقة نسخة (Instance Method) def description(self): return f"{self.name} is {self.age} years old" # إنشاء كائنات my_dog = Dog("Buddy", 5) your_dog = Dog("Lucy", 3) print(my_dog.description()) # Buddy is 5 years old print(your_dog.description()) # Lucy is 3 years old

معالجة الملفات في بايثون

5.1 فتح الملفات وقراءتها وكتابتها

توفر بايثون وظائف مدمجة للتعامل مع الملفات. الخطوة الأولى هي فتح الملف باستخدام الدالة open().

# قراءة ملف نصي with open('example.txt', 'r') as file: content = file.read() print(content) # كتابة ملف نصي with open('output.txt', 'w') as file: file.write("Hello, World!\n") file.write("This is a new line.") # إلحاق محتوى إلى ملف with open('output.txt', 'a') as file: file.write("\nAppending a new line.")

5.2 إدارة السياقات (with statement)

عبارة with توفر طريقة أنيقة وآمنة للتعامل مع الموارد التي تحتاج إلى إعدادات أولية وتنظيف نهائي، مثل الملفات. تضمن أن عمليات التنظيف (مثل إغلاق الملف) ستتم تلقائيًا.

مزايا استخدام with:

  • إغلاق الملف تلقائيًا حتى في حالة حدوث أخطاء
  • كود أكثر نظافة وأقل عرضة للأخطاء
  • منع تسريب الموارد

مكتبات بايثون قياسية وأساسية

مكتبة datetime

للتعامل مع التاريخ والوقت

import datetime now = datetime.datetime.now() print(now.strftime("%Y-%m-%d"))

مكتبة math

للدوال الرياضية

import math print(math.sqrt(16)) print(math.pi)

مكتبة random

لتوليد الأرقام العشوائية

import random print(random.randint(1, 10)) print(random.choice(['a', 'b', 'c']))

مكتبة os

للتعامل مع نظام التشغيل

import os print(os.getcwd()) print(os.listdir('.'))

مقدمة في قواعد البيانات مع بايثون

7.1 التعرف على قواعد البيانات العلائقية

قواعد البيانات العلائقية تخزن البيانات في جداول مترابطة. كل جدول يتكون من صفوف وأعمدة. SQLite هي مكتبة C توفر محرك قاعدة بيانات خفيف الوزن ومضمّن. بايثون تأتي مع دعم مدمج لـ SQLite عبر الوحدة sqlite3.

مزايا SQLite:

  • لا يتطلب تكوين خادم - قاعدة البيانات ملف واحد
  • سريعة وموثوقة
  • متعددة المنصات

7.2 الاتصال بقاعدة البيانات وتنفيذ الاستعلامات

import sqlite3 # الاتصال بقاعدة البيانات conn = sqlite3.connect('my_database.db') cursor = conn.cursor() # إنشاء جدول cursor.execute('''CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, username TEXT NOT NULL UNIQUE, email TEXT NOT NULL UNIQUE )''') # إدراج بيانات cursor.execute("INSERT INTO users (username, email) VALUES (?, ?)", ('alice', '[email protected]')) conn.commit() # استعلام البيانات cursor.execute("SELECT * FROM users") users = cursor.fetchall() for user in users: print(user) # إغلاق الاتصال cursor.close() conn.close()

تطوير واجهات المستخدم (GUI)

8.1 مقدمة في مكتبات GUI

Tkinter

المكتبة القياسية - سهلة التعلم ومناسبة للمبتدئين

PyQt/PySide

مكتبات احترافية - واجهات معقدة ومظهر حديث

Kivy

لتطبيقات اللمس - تعمل على الهواتف والحواسيب

8.2 إنشاء النوافذ والأزرار باستخدام Tkinter

import tkinter as tk from tkinter import messagebox def on_button_click(): name = entry.get() messagebox.showinfo("Greeting", f"Hello, {name}!") # إنشاء النافذة الرئيسية root = tk.Tk() root.title("Simple GUI App") # إضافة عناصر واجهة المستخدم label = tk.Label(root, text="Enter your name:") label.pack(pady=10) entry = tk.Entry(root, width=30) entry.pack(pady=5) button = tk.Button(root, text="Greet Me", command=on_button_click) button.pack(pady=10) # بدء حلقة الأحداث root.mainloop()

تطوير الويب باستخدام بايثون

9.1 مقدمة في أطر عمل الويب

Flask

إطار عمل خفيف الوزن ومرن، مناسب للمشاريع الصغيرة إلى المتوسطة وكذلك للتعلم السريع77.

  • مرن وسهل التعلم
  • مناسب للواجهات البرمجية (APIs)
  • مجتمع داعم كبير

Django

إطار عمل شامل (batteries-included) يوفر العديد من الميزات الجاهزة، مناسب للتطبيقات المعقدة75.

  • نظام إدارة مستخدمين مدمج
  • نظام ORM قوي
  • أمان عالٍ من البداية

9.2 إنشاء تطبيق ويب بسيط باستخدام Flask

from flask import Flask, render_template, request # إنشاء تطبيق Flask app = Flask(__name__) # تعريف المسارات (Routes) @app.route('/') def home(): return "Hello, World!" @app.route('/greet/<name>') def greet(name): return f"Hello, {name}!" @app.route('/form', methods=['GET', 'POST']) def form(): if request.method == 'POST': name = request.form.get('name') return f"Hello, {name}!" return render_template('form.html') # تشغيل التطبيق if __name__ == '__main__': app.run(debug=True)

مكونات تطبيق الويب:

التوجيه (Routing):

تعيين عناوين URL إلى دوال معالجة

القوالب (Templates):

فصل منطق التطبيق عن عرض البيانات

الاستجابات (Responses):

إرجاع HTML، JSON، أو أنواع أخرى من البيانات