البرمجة
أول برنامج لك بلغة 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)** — كيف تجعل برنامجك يتخذ قرارات!
**جرب التمارين الثلاثة قبل الانتقال للمقال التالي. الممارسة هي المفتاح!**
**هل نجح أول برنامج لك؟ شاركنا في التعليقات!**