البرمجة

أول برنامج لك بلغة Python — Hello World وأكثر

📅 2026-09-20⏱ 8 دقائق قراءة
في المقال السابق، قمنا بتثبيت Python وإعداد بيئة العمل. الآن حان الوقت لكتابة أول برنامج لك. لا تقلق — لن نبدأ بشيء معقد. سنبدأ بأبسط برنامج ممكن، ثم نبني عليه تدريجياً. بنهاية هذا المقال، ستكون قادراً على: - كتابة وتشغيل أول برنامج Python - استخدام دالة `print()` لعرض النصوص - استخدام دالة `input()` لاستقبال مدخلات المستخدم - تخزين البيانات في متغيرات - إضافة تعليقات لتوضيح الكود ## 1. برنامج Hello World — التقليد العالمي في عالم البرمجة، هناك تقليد متبع منذ عقود: أول برنامج تكتبه في أي لغة جديدة يكون برنامج "Hello, World!". الهدف منه بسيط: التأكد من أن كل شيء يعمل بشكل صحيح. ### الخطوة 1: افتح VS Code - افتح VS Code - أنشئ ملفاً جديداً: `File > New File` - احفظه باسم: `hello.py` - **مهم:** تأكد من أن الامتداد `.py` وليس `.txt` ### الخطوة 2: اكتب الكود ```python print("Hello, World!") ``` هذا كل شيء! سطر واحد فقط. ### الخطوة 3: شغّل البرنامج **في VS Code:** - اضغط `Ctrl + F5` (ويندوز) أو `Cmd + F5` (ماك) **أو من Terminal:** ```bash python hello.py ``` ### الخطوة 4: شاهد النتيجة ``` Hello, World! ``` **🎉 مبروك! لقد كتبت وشغّلت أول برنامج Python في حياتك!** ## 2. دالة print() — كيف تخرج النصوص؟ دالة `print()` هي أداة Python الأساسية لعرض النصوص والمخرجات على الشاشة. اسمها مشتق من "طباعة" — لأنها "تطبع" النص على الشاشة. ### الصيغة الأساسية ```python print("النص الذي تريد طباعته") ``` **قواعد مهمة:** - النص يوضع بين علامتي تنصيص `"..."` أو `'...'` - الدالة تبدأ بحرف صغير: `print` وليس `Print` - القوس `()` إلزامي ### طباعة النصوص ```python print("مرحباً بك في عالم البرمجة") print("أنا أتعلم Python") print("هذا سطر ثالث") ``` **النتيجة:** ``` مرحباً بك في عالم البرمجة أنا أتعلم Python هذا سطر ثالث ``` ### طباعة الأرقام ```python print(42) print(3.14) print(100 + 200) ``` **النتيجة:** ``` 42 3.14 300 ``` **ملاحظة:** الأرقام لا تحتاج علامات تنصيص — لأنها ليست نصوصاً. ### طباعة عدة قيم معاً يمكنك طباعة عدة قيم في سطر واحد بفصلها بفواصل: ```python print("الاسم:", "أحمد") print("العمر:", 25) print("المدينة:", "عمّان") ``` **النتيجة:** ``` الاسم: أحمد العمر: 25 المدينة: عمّان ``` Python يضيف مسافة تلقائياً بين القيم المفصولة بفواصل. ### التحكم في الفاصل يمكنك تغيير الفاصل الافتراضي (المسافة) باستخدام `sep`: ```python print("2026", "09", "20", sep="-") ``` **النتيجة:** ``` 2026-09-20 ``` ### طباعة سطر فارغ ```python print("السطر الأول") print() print("السطر الثالث") ``` **النتيجة:** ``` السطر الأول السطر الثالث ``` ## 3. المتغيرات — صناديق لتخزين البيانات المتغير هو مكان في الذاكرة نخزن فيه قيمة. تخيله كصندوق نضع فيه شيئاً ونعطيه اسماً. ### إنشاء متغير ```python name = "أحمد" age = 25 city = "عمّان" ``` **شرح:** - `name` هو اسم المتغير - `=` هي علامة الإسناد (وليس "يساوي" كما في الرياضيات) - `"أحمد"` هي القيمة المخزنة ### استخدام المتغيرات ```python name = "سارة" print(name) ``` **النتيجة:** ``` سارة ``` ### طباعة المتغيرات مع نصوص ```python name = "أحمد" age = 25 print("الاسم:", name) print("العمر:", age) ``` **النتيجة:** ``` الاسم: أحمد العمر: 25 ``` ### تحديث قيمة المتغير ```python score = 10 print("النتيجة الأولية:", score) score = 20 print("النتيجة الجديدة:", score) ``` **النتيجة:** ``` النتيجة الأولية: 10 النتيجة الجديدة: 20 ``` ### قواعد تسمية المتغيرات <table> <thead> <tr> <th>القاعدة</th> <th>صحيح</th> <th>خطأ</th> </tr> </thead> <tbody> <tr> <td>يبدأ بحرف أو شرطة سفلية</td> <td><code>name</code>, <code>_age</code></td> <td><code>2name</code></td> </tr> <tr> <td>لا يحتوي على مسافات</td> <td><code>first_name</code></td> <td><code>first name</code></td> </tr> <tr> <td>لا يستخدم كلمات محجوزة</td> <td><code>my_print</code></td> <td><code>print</code></td> </tr> <tr> <td>حساس لحالة الأحرف</td> <td><code>Name</code> ≠ <code>name</code></td> <td>—</td> </tr> <tr> <td>يفضل snake_case</td> <td><code>user_age</code></td> <td><code>UserAge</code></td> </tr> </tbody> </table> ## 4. التعليقات — ملاحظات للنفس وللآخرين التعليقات هي نصوص يهملها Python تماماً عند التنفيذ. نستخدمها لشرح الكود أو ترك ملاحظات. ### التعليق بسطر واحد يبدأ بعلامة `#`: ```python # هذا تعليق — Python سيتجاهله print("هذا سطر يُنفذ") # هذا أيضاً تعليق ``` ### التعليقات متعددة الأسطر Python ليس لديها تعليقات متعددة الأسطر رسمياً، لكن يمكن استخدام: **الطريقة 1: علامات التنصيص الثلاثية** ```python """ هذا تعليق متعدد الأسطر يستخدم للتوثيق """ print("مرحباً") ``` **الطريقة 2: عدة تعليقات سطر واحد** ```python # السطر الأول # السطر الثاني # السطر الثالث print("مرحباً") ``` ### متى تستخدم التعليقات؟ - ✅ لشرح **لماذا** فعلت شيئاً (وليس ماذا) - ✅ لترك ملاحظات لنفسك لاحقاً - ✅ لتوثيق الدوال والمعاملات - ❌ لا تشرح الواضح: `# طباعة مرحباً` قبل `print("مرحباً")` — مضيعة ## 5. دالة input() — استقبال مدخلات المستخدم حتى الآن، برامجنا تعرض فقط. لكن البرامج الحقيقية تتفاعل مع المستخدم. هنا يأتي دور `input()`. ### الصيغة الأساسية ```python input("رسالة تظهر للمستخدم: ") ``` البرنامج يتوقف وينتظر حتى يكتب المستخدم شيئاً ويضغط Enter. ### مثال بسيط ```python name = input("ما اسمك؟ ") print("مرحباً", name) ``` **عند التشغيل:** ``` ما اسمك؟ أحمد مرحباً أحمد ``` ### مثال تفاعلي كامل ```python name = input("ما اسمك؟ ") age = input("كم عمرك؟ ") city = input("من أي مدينة أنت؟ ") print() print("مرحباً", name) print("عمرك", age, "سنة") print("من مدينة", city) ``` **عند التشغيل:** ``` ما اسمك؟ سارة كم عمرك؟ 22 من أي مدينة أنت؟ عمّان مرحباً سارة عمرك 22 سنة من مدينة عمّان ``` ### ⚠️ ملاحظة مهمة جداً `input()` **ترجع دائماً نصاً (string)**، حتى لو كتب المستخدم رقماً: ```python age = input("كم عمرك؟ ") print(type(age)) ``` **النتيجة:** ``` <class 'str'> ``` لمعرفة النوع، استخدم `type()`. إذا أردت التعامل مع الرقم كرقم حقيقي، يجب تحويله: ```python age = int(input("كم عمرك؟ ")) print("بعد 10 سنوات سيكون عمرك:", age + 10) ``` ## 6. f-Strings — الطريقة الحديثة لتنسيق النصوص f-Strings هي طريقة أنيقة لدمج المتغيرات داخل النصوص. أضيفت في Python 3.6 وأصبحت المعيار الحديث. ### الصيغة ```python f"النص {المتغير}" ``` انتبه لحرف **f** قبل علامة التنصيص. ### مثال مقارنة **الطريقة القديمة:** ```python name = "أحمد" print("مرحباً " + name + "!") ``` **الطريقة الحديثة (f-String):** ```python name = "أحمد" print(f"مرحباً {name}!") ``` **كلاهما يعطي نفس النتيجة:** ``` مرحباً أحمد! ``` ### لماذا f-Strings أفضل؟ - ✅ أوضح وأسهل قراءة - ✅ يمكن وضع تعبيرات داخل الأقواس - ✅ لا حاجة لتحويل الأنواع يدوياً ### أمثلة متقدمة ```python name = "سارة" age = 22 city = "عمّان" print(f"اسمي {name}، عمري {age} سنة، وأنا من {city}") ``` **النتيجة:** ``` اسمي سارة، عمري 22 سنة، وأنا من عمّان ``` **مع العمليات الحسابية:** ```python price = 100 quantity = 3 print(f"السعر الإجمالي: {price * quantity} ريال") ``` **النتيجة:** ``` السعر الإجمالي: 300 ريال ``` ## 7. مشروع صغير — برنامج تعريفي تفاعلي دعنا نجمع كل ما تعلمناه في برنامج واحد. هذا البرنامج يطلب من المستخدم بعض المعلومات ويعرض ملخصاً. ### الكود الكامل ```python # برنامج تعريفي تفاعلي # يجمع كل ما تعلمناه: print, input, variables, f-strings, comments print("=" * 40) print("مرحباً بك في برنامج NahdaAI التعريفي") print("=" * 40) print() # جمع المعلومات من المستخدم name = input("ما اسمك؟ ") age = input("كم عمرك؟ ") city = input("من أي مدينة أنت؟ ") hobby = input("ما هوايتك المفضلة؟ ") # عرض الملخص print() print("-" * 40) print("ملخص معلوماتك:") print("-" * 40) print(f"الاسم: {name}") print(f"العمر: {age} سنة") print(f"المدينة: {city}") print(f"الهواية: {hobby}") print("-" * 40) print() print(f"شكراً {name}! سعدنا بتعرفك 😊") ``` ### عند التشغيل ``` ======================================== مرحباً بك في برنامج NahdaAI التعريفي ======================================== ما اسمك؟ أحمد كم عمرك؟ 25 من أي مدينة أنت؟ عمّان ما هوايتك المفضلة؟ القراءة ---------------------------------------- ملخص معلوماتك: ---------------------------------------- الاسم: أحمد العمر: 25 سنة المدينة: عمّان الهواية: القراءة ---------------------------------------- شكراً أحمد! سعدنا بتعرفك 😊 ``` ### شرح الكود <table> <thead> <tr> <th>السطر</th> <th>الشرح</th> </tr> </thead> <tbody> <tr> <td><code>print("=" * 40)</code></td> <td>يطبع 40 علامة يساوي (للتزيين)</td> </tr> <tr> <td><code># تعليق</code></td> <td>تعليقات تشرح الكود</td> </tr> <tr> <td><code>name = input(...)</code></td> <td>يطلب الاسم ويخزنه في متغير</td> </tr> <tr> <td><code>f"الاسم: {name}"</code></td> <td>يستخدم f-String لدمج المتغير</td> </tr> </tbody> </table> ## 8. أخطاء شائعة للمبتدئين ### 1. نسيان علامات التنصيص ```python # خطأ print(مرحباً) # صحيح print("مرحباً") ``` **الخطأ:** `NameError: name 'مرحباً' is not defined` ### 2. نسيان القوس ```python # خطأ print "مرحباً" # صحيح print("مرحباً") ``` **الخطأ:** `SyntaxError: Missing parentheses in call to 'print'` ### 3. الخلط بين print و Print ```python # خطأ Print("مرحباً") # صحيح print("مرحباً") ``` **الخطأ:** `NameError: name 'Print' is not defined` Python حساسة لحالة الأحرف. ### 4. نسيان تحويل input ```python # خطأ — سيحصل خطأ إذا كتب المستخدم 5 num = input("أدخل رقماً: ") print(num + 10) # صحيح num = int(input("أدخل رقماً: ")) print(num + 10) ``` **الخطأ:** `TypeError: can only concatenate str (not "int") to str` ### 5. استخدام "=" بدلاً من "==" ```python # للمقارنة (سنتعلمها لاحقاً) if x == 5: # صحيح print("x يساوي 5") ``` ## 9. تمارين عملية ### التمرين 1: طباعة معلوماتك اكتب برنامجاً يطبع: - اسمك - عمرك - مدينتك - هوايتك كل معلومة في سطر منفصل. ### التمرين 2: آلة حاسبة بسيطة اكتب برنامجاً: - يطلب رقمين من المستخدم - يطبعهما - يطبع مجموعهما ### التمرين 3: بطاقة تعريف اكتب برنامجاً يطلب اسمك وعمرك ومدينتك، ثم يطبع: ``` مرحباً [الاسم]! عمرك [العمر] سنة. تسكن في [المدينة]. ``` استخدم f-Strings. ## قائمة تحقق — هل تعلمت؟ <table> <thead> <tr> <th>المهارة</th> <th>الحالة</th> </tr> </thead> <tbody> <tr> <td>كتابة وتشغيل أول برنامج Python</td> <td>⬜</td> </tr> <tr> <td>استخدام <code>print()</code> لطباعة النصوص والأرقام</td> <td>⬜</td> </tr> <tr> <td>إنشاء متغيرات وتحديثها</td> <td>⬜</td> </tr> <tr> <td>إضافة تعليقات للكود</td> <td>⬜</td> </tr> <tr> <td>استخدام <code>input()</code> لطلب مدخلات</td> <td>⬜</td> </tr> <tr> <td>استخدام f-Strings لتنسيق النصوص</td> <td>⬜</td> </tr> <tr> <td>بناء برنامج تفاعلي كامل</td> <td>⬜</td> </tr> </tbody> </table> ## الخلاصة في هذا المقال، تعلمت: 1. **كتابة أول برنامج** — Hello World 2. **دالة print()** — لعرض المخرجات 3. **المتغيرات** — لتخزين البيانات 4. **التعليقات** — لتوثيق الكود 5. **دالة input()** — لاستقبال مدخلات المستخدم 6. **f-Strings** — لتنسيق النصوص باحترافية هذه هي **الأساسيات الست** التي ستبني عليها كل ما ستتعلمه لاحقاً في Python. **في المقال القادم:** سنتعلم **الشروط (if/else)** — كيف تجعل برنامجك يتخذ قرارات! **جرب التمارين الثلاثة قبل الانتقال للمقال التالي. الممارسة هي المفتاح!** **هل نجح أول برنامج لك؟ شاركنا في التعليقات!**