كتاب تعلم البرمجة بلغة بايثون بالعربي للمبتدئين (PDF)

العلامة: تقدر

59.99 ر.س

متوفر - تحميل فورياشترِ الآن
حمّل عيّنة مجانية

جرّب الكتاب قبل الشراء: أدخل بريدك وسنرسل لك رابط تحميل عيّنة من النسخة الكاملة.

طلب عيّنة مجانية
نقبل البريد من Gmail وHotmail وOutlook وYahoo وiCloud.
  • التوصيل:تحميل فوري بعد الدفع، بدون رسوم توصيل. يصلك الرابط على بريدك الإلكتروني مباشرة للـ التفاصيل
  • الاسترداد: ضمان استرداد كامل المبلغ خلال 14 يومًا من الشراء. سياسة الاسترداد

كتاب PDF عملي لتعلّم لغة بايثون 3.14 بالعربي من الصفر: 40 فصلًا من المتغيّرات والحلقات والدوال إلى الأصناف والملفات وasyncio، مع أكواد بايثون تجرّبها أون لاين.

رمز المنتج (SKU): TGD-EB-008

وصف المنتج

تقدر تبرمج، حتى لو لم تكتب سطرًا من قبل. كتاب «أساسيات البرمجة بلغة بايثون» يعلّمك لغة بايثون 3.14 بالعربي من أول خطوة: تثبيتها، وكتابة أول سطر، حتى الملفات والأصناف والإنترنت والبرمجة غير المتزامنة.

ماذا يغطي الكتاب؟ 40 فصلًا في 12 جزءًا: البداية وتثبيت بايثون، والمتغيّرات والأعداد والنصوص والقوائم، والقرارات والحلقات (if وmatch وfor وwhile)، والصفوف والمجموعات والقواميس، والدوال، والملفات وJSON، والتعامل مع الأخطاء، والوحدات وتثبيت المكتبات بـpip، والبرمجة الكائنية (الأصناف والوراثة وdataclasses)، والمكرِّرات والمولِّدات، والمكتبة القياسية (التواريخ والتعابير النمطية والإنترنت والاختبار)، ثم Threads وasyncio.

تتعلّم مع خالد، طالب جامعي يبدأ من الصفر مثلك، وأخته نورة التي تسأل دائمًا «وماذا لو؟»، ومرشدهما الهادئ سند. ولكل موضوع ثلاث خطوات: افهم، ثم ابنِ مشروعًا صغيرًا من حياتك اليومية، ثم تمرّن وارتقِ.

كل كود بايثون في الكتاب جُرّب على بايثون 3.14 ومخرجاته حقيقية، ويمكنك تشغيل الأمثلة أون لاين في متصفّحك بلا تثبيت على tegdar.com/python. ومعه أكثر من 100 سؤال جاهز تنسخه وتناقش به أي ذكاء اصطناعي.

الكتاب للمبتدئ تمامًا بلا أي خبرة سابقة، ولطلاب الثانوية والجامعة الذين يريدون مهارة مطلوبة، وللموظّف الذي يريد برامج صغيرة تؤدّي عمله المتكرّر. يصلك ملف PDF فور إتمام الدفع.

جرّب أكواد بايثون من الكتاب أون لاين

10 أمثلة حقيقية من فصول الكتاب، جُرِّبت على بايثون 3.14. افتح أي مثال لترى الكود ومخرجاته، أو اضغط «شغّل» لتفتحه في مترجم بايثون اون لاين وتعدّل عليه بلا تثبيت.

  1. بطاقة دعوة عشاء الجمعة

    الفصل 6 · المتغيّرات (Variables)

    تحفظ كل معلومة في متغيّر باسم واضح، ثم تطبع بطاقة الدعوة كاملة.

    host = "أم خالد"
    dish = "كبسة لحم"
    day = "الجمعة"
    dinner_time = "8 مساءً"
    place = "بيت العائلة"
    
    print("دعوة عشاء")
    print("الداعي:", host)
    print("الطبق:", dish)
    print("اليوم:", day)
    print("الوقت:", dinner_time)
    print("المكان:", place)

    المخرجات:

    دعوة عشاء
    الداعي: أم خالد
    الطبق: كبسة لحم
    اليوم: الجمعة
    الوقت: 8 مساءً
    المكان: بيت العائلة
    ▶ شغّل
  2. حاسبة ميزانية الرحلة

    الفصل 7 · الأعداد والحساب (Numbers)

    تحسب كلفة الفندق والوقود ونصيب كل فرد، وتحوّل دقائق القيادة إلى ساعات ودقائق بـ // و %.

    fuel = 450.75
    nights = 3
    price_per_night = 320
    travelers = 4
    drive_minutes = 635
    
    hotel_total = nights * price_per_night
    total = fuel + hotel_total
    per_person = total / travelers
    hours = drive_minutes // 60
    minutes = drive_minutes % 60
    
    print("الفندق:", hotel_total, "ريال")
    print("المجموع:", total, "ريال")
    print("نصيب الفرد:", round(per_person, 2), "ريال")
    print("ساعات القيادة:", hours)
    print("والدقائق:", minutes)

    المخرجات:

    الفندق: 960 ريال
    المجموع: 1410.75 ريال
    نصيب الفرد: 352.69 ريال
    ساعات القيادة: 10
    والدقائق: 35
    ▶ شغّل
  3. مُنسِّق رسالة التذكير

    الفصل 8 · النصوص (Strings)

    تنظّف الاسم ورقم الجوال، وتجمع المواد في جملة واحدة، وتكتب الرسالة بـ f-string.

    raw_name = "  نورة  "
    subjects_line = "الرياضيات,مشروع الإنجليزي"
    phone = "055 123 4567"
    
    name = raw_name.strip()
    subjects = " و".join(subjects_line.split(","))
    clean_phone = phone.replace(" ", "")
    title = " تذكير ".center(24, "=")
    
    print(title)
    print(f"مرحبًا {name}، بقي عليك: {subjects}.")
    print(f"رقم مدرّسة الرياضيات: {clean_phone}")
    print(f"أرقام فقط؟ {clean_phone.isdigit()}")
    print(f"عدد الأرقام: {len(clean_phone)}")

    المخرجات:

    ======== تذكير =========
    مرحبًا نورة، بقي عليك: الرياضيات ومشروع الإنجليزي.
    رقم مدرّسة الرياضيات: 0551234567
    أرقام فقط؟ True
    عدد الأرقام: 10
    ▶ شغّل
  4. جدول الاختبارات

    الفصل 13 · الحلقات (for · range())

    حلقة for تمرّ على الجدول وترقّم كل اختبار.

    # جدول اختبارات نهاية الفصل (بعد شهر) كما أرسلته المدرسة
    exams = [
        ["الأحد", "اللغة العربية"],
        ["الاثنين", "الأحياء"],
        ["الثلاثاء", "الفيزياء"],
        ["الأربعاء", "الرياضيات"],
        ["الخميس", "الكيمياء"],
    ]
    
    print("جدول الاختبارات")
    for number in range(len(exams)):
        day, subject = exams[number]
        print(f"{number + 1}. {day}: {subject}")
    print("عدد الاختبارات:", len(exams))

    المخرجات:

    جدول الاختبارات
    1. الأحد: اللغة العربية
    2. الاثنين: الأحياء
    3. الثلاثاء: الفيزياء
    4. الأربعاء: الرياضيات
    5. الخميس: الكيمياء
    عدد الاختبارات: 5
    ▶ شغّل
  5. تقرير المعدّلات

    الفصل 18 · الدوال (Functions)

    دالتان: واحدة تحسب المعدّل وأخرى تعطي التقدير، تستدعيهما لكل طالبة.

    # دالة المعدّل التي وعدناك بها: تحسب معدّل أي طالبة، وتستدعيها متى شئت
    def average(grades):
        return sum(grades) / len(grades)
    
    def label(avg):
        if avg >= 15:
            return "ممتاز"
        elif avg >= 12:
            return "جيد جدًا"
        elif avg >= 10:
            return "جيد"
        return "يحتاج مراجعة"
    
    students = {"نورة": [18, 16.5, 19], "ريم": [15, 17, 16], "هند": [10, 12, 11]}
    for name, grades in students.items():
        avg = average(grades)
        print(f"{name}: {avg:.2f} ← {label(avg)}")

    المخرجات:

    نورة: 17.83 ← ممتاز
    ريم: 16.00 ← ممتاز
    هند: 11.00 ← جيد
    ▶ شغّل
  6. جدول بأعمدة مرتّبة

    الفصل 21 · تنسيق المخرجات (str.format())

    الجدول نفسه مرّتين: بنصّ تنسيق format() وبالطرق اليدوية zfill وrjust.

    # جدول اختبارات نورة مرّتين: بنصّ تنسيق format()، وبالطرق اليدوية
    exams = [("العربي", 11, 8), ("الأحياء", 11, 9), ("الفيزياء", 11, 10),
             ("الرياضيات", 11, 11), ("الكيمياء", 11, 12)]
    today = 17                      # اليوم 17 أكتوبر
    row = "{0:02d}/{1:02d}  {2:>3} days  {3}"
    
    print("DATE    LEFT     SUBJECT")
    for subject, month, day in exams:
        left = (31 - today) + day
        print(row.format(day, month, left, subject))
    
    print()
    for subject, month, day in exams:
        left = (31 - today) + day
        date = str(day).zfill(2) + "/" + str(month).zfill(2)
        print(date, str(left).rjust(4), "days ", subject)

    المخرجات:

    DATE    LEFT     SUBJECT
    08/11   22 days  العربي
    09/11   23 days  الأحياء
    10/11   24 days  الفيزياء
    11/11   25 days  الرياضيات
    12/11   26 days  الكيمياء
    
    08/11   22 days  العربي
    09/11   23 days  الأحياء
    10/11   24 days  الفيزياء
    11/11   25 days  الرياضيات
    12/11   26 days  الكيمياء
    ▶ شغّل
  7. بطاقة المادة

    الفصل 28 · الأصناف والكائنات (Classes)

    صنف Subject يجعل كل مادة كائنًا له اسم وساعات وموعد اختبار.

    # بطاقة مادة: كل مادة كائن له اسم وساعات مخطّطة ومنجزة وموعد اختبار
    class Subject:
        """مادة في خطّة مذاكرة نورة."""
        def __init__(self, name, planned, done=0, exam_day=None):
            self.name = name
            self.planned = planned
            self.done = done
            self.exam_day = exam_day
    
    plan = [
        Subject("الأحياء", 6, 4, exam_day=9),
        Subject("الفيزياء", 8, 5, exam_day=10),
        Subject("الكيمياء", 5, 1, exam_day=12),
    ]
    for subject in plan:
        left = subject.planned - subject.done
        print(f"{subject.name}: باقي {left} ساعات، والاختبار {subject.exam_day} نوفمبر")

    المخرجات:

    الأحياء: باقي 2 ساعات، والاختبار 9 نوفمبر
    الفيزياء: باقي 3 ساعات، والاختبار 10 نوفمبر
    الكيمياء: باقي 4 ساعات، والاختبار 12 نوفمبر
    ▶ شغّل
  8. نصيحة حسب حالة المهمّة

    الفصل 30 · Enum و match (Enum · match)

    تعداد Enum لحالات المهمّة، وmatch يختار النصيحة المناسبة لكل حالة.

    from enum import Enum
    
    class Status(Enum):
        TODO = "لم تبدأ"
        DOING = "جارية"
        DONE = "انتهت"
    
    def advice(status):
        match status:
            case Status.TODO:
                return "ابدئي بربع ساعة"
            case Status.DOING:
                return "أكملي، أنتِ في الطريق"
            case Status.DONE:
                return "أحسنتِ، استريحي"
    
    for s in Status:
        print(s.value, "->", advice(s))

    المخرجات:

    لم تبدأ -> ابدئي بربع ساعة
    جارية -> أكملي، أنتِ في الطريق
    انتهت -> أحسنتِ، استريحي
    ▶ شغّل
  9. العدّ التنازلي للاختبارات

    الفصل 31 · المولِّدات (Generators · yield)

    مولّد يعطي كل يوم باقٍ ومادّته بالدور، ثم نجمع الساعات بتعبير مولّد.

    # عدّ تنازلي للاختبارات: مولّد يعطي كل يوم ومهمّته، حتى أول اختبار
    def daily_plan(days_left, subjects):
        """تعطي لكل يوم باقٍ مادة، بالدور."""
        day = days_left
        turn = 0
        while day > 0:
            yield day, subjects[turn % len(subjects)]
            day -= 1
            turn += 1
    
    subjects = ["الأحياء", "الفيزياء", "الكيمياء"]
    plan = daily_plan(12, subjects)
    for day, subject in plan:
        if day <= 6:
            print(f"الأيام الباقية {day}: {subject}")
    hours = {"الأحياء": 2, "الفيزياء": 3, "الكيمياء": 2}
    total = sum(hours[s] for _, s in daily_plan(12, subjects))
    print("مجموع الساعات حتى الاختبار:", total)

    المخرجات:

    الأيام الباقية 6: الأحياء
    الأيام الباقية 5: الفيزياء
    الأيام الباقية 4: الكيمياء
    الأيام الباقية 3: الأحياء
    الأيام الباقية 2: الفيزياء
    الأيام الباقية 1: الكيمياء
    مجموع الساعات حتى الاختبار: 28
    ▶ شغّل
  10. مستخرج أرقام الجوال

    الفصل 34 · التعابير النمطية (Regular expressions)

    نمط re واحد يجد أرقام الجوال السعودية في الرسائل، بمسافات أو بدونها.

    # أرقام المجموعة من رسائلها: نستخرج كل جوّال سعودي، بمسافات أو بدونها
    import re
    
    messages = [
        "ريم: رقمي الجديد 0551234567",
        "لمى: 056 765 4321 للواتساب",
        "سارة: اتصلي على 0509876543 أو 0112345678 للبيت",
        "هند: رقمي 05512 (ناقص، سأرسله لاحقًا)",
    ]
    
    pattern = r"05\d ?\d{3} ?\d{4}"
    for line in messages:
        name = line.split(":")[0]
        for phone in re.findall(pattern, line):
            digits = phone.replace(" ", "")
            print(f"{digits}  {name}")

    المخرجات:

    0551234567  ريم
    0567654321  لمى
    0509876543  سارة
    ▶ شغّل

المواصفات

العلامة التجاريةتقدر
القسمكتب إلكترونية
عنوان الكتابأساسيات البرمجة بلغة بايثون
الصيغةPDF
عدد الفصول40
عدد الصفحات720
نسخة بايثونPython 3.14
اللغةالعربية
المستوىمبتدئ
الإصدار2027
رمز المنتج (SKU)TGD-EB-008