المتغيرات وأنواع البيانات في Python — الشرح الكامل
دليل شامل للمتغيرات وأنواع البيانات في Python — النصوص، الأرقام، القوائم، القواميس مع أمثلة عملية
في المقال السابق، كتبت أول برنامج لك وطبعت "Hello, World!". الآن حان الوقت لفهم أهم مفهوم في البرمجة: المتغيرات وأنواع البيانات.
بدون المتغيرات، لا يمكن لأي برنامج أن يحفظ بيانات أو يتعامل معها. هي أساس كل شيء في Python.
بنهاية هذا المقال، ستكون قادراً على:
- إنشاء متغيرات واستخدامها
- فهم الفرق بين أنواع البيانات المختلفة
- تحويل الأنواع من نوع لآخر
- استخدام القوائم والقواميس
- تجنب الأخطاء الشائعة
1. ما هو المتغير؟
المتغير هو مكان في ذاكرة الحاسوب نخزن فيه قيمة، ونعطيه اسماً لنشير إليه لاحقاً.
القياس العملي:
تخيل المتغير كـ صندوق عليه ملصق باسمه:
- الصندوق = مساحة في الذاكرة
- الملصق = اسم المتغير
- المحتوى = القيمة المخزنة
إنشاء متغير:
name = "أحمد"
age = 25
is_student = True
شرح:
name= اسم المتغير== علامة الإسناد (وليست "يساوي")"أحمد"= القيمة المخزنة
استخدام المتغير:
name = "سارة"
print(name) # سارة
print(f"مرحباً {name}") # مرحباً سارة
2. قواعد تسمية المتغيرات
| القاعدة | صحيح | خطأ |
|---|---|---|
| يبدأ بحرف أو _ | name, _age | 2name |
| بدون مسافات | first_name | first name |
| لا يستخدم كلمات محجوزة | my_print | print |
| حساس لحالة الأحرف | Name ≠ name | — |
| يفضل snake_case | user_age | UserAge |
3. أنواع البيانات الأساسية
Python لديها عدة أنواع بيانات. أهم 6 أنواع:
1. النصوص (String — str)
name = "أحمد"
city = 'عمّان'
message = """
هذا نص
متعدد الأسطر
"""
print(type(name)) # <class 'str'>
ملاحظة: النص يوضع بين "..." أو '...'.
2. الأعداد الصحيحة (Integer — int)
age = 25
year = 2026
temperature = -5
print(type(age)) # <class 'int'>
3. الأعداد العشرية (Float — float)
price = 19.99
pi = 3.14159
ratio = 0.5
print(type(price)) # <class 'float'>
4. القيم المنطقية (Boolean — bool)
is_active = True
is_deleted = False
print(type(is_active)) # <class 'bool'>
قيمتان فقط: True أو False.
5. القوائم (List — list)
fruits = ["تفاح", "موز", "برتقال"]
numbers = [1, 2, 3, 4, 5]
mixed = ["أحمد", 25, True, 3.14]
print(type(fruits)) # <class 'list'>
القائمة: مجموعة مرتبة وقابلة للتعديل.
6. القواميس (Dictionary — dict)
person = {
"name": "أحمد",
"age": 25,
"city": "عمّان"
}
print(type(person)) # <class 'dict'>
القاموس: مجموعة من أزواج مفتاح-قيمة.
جدول مقارنة:
| النوع | الاسم | مثال | الاستخدام |
|---|---|---|---|
str | نص | "أحمد" | أسماء، رسائل، عناوين |
int | عدد صحيح | 25 | أعمار، أعداد، سنوات |
float | عدد عشري | 19.99 | أسعار، نسب، قياسات |
bool | منطقي | True | حالات، شروط، إعدادات |
list | قائمة | [1, 2, 3] | مجموعات مرتبة |
dict | قاموس | {"a": 1} | بيانات مترابطة |
4. معرفة نوع المتغير
استخدم دالة type():
name = "أحمد"
age = 25
price = 19.99
is_active = True
print(type(name)) # <class 'str'>
print(type(age)) # <class 'int'>
print(type(price)) # <class 'float'>
print(type(is_active)) # <class 'bool'>
5. تحويل الأنواع (Type Conversion)
يمكنك تحويل نوع لآخر:
# نص إلى عدد صحيح
age_str = "25"
age_int = int(age_str)
print(age_int + 5) # 30
# عدد صحيح إلى نص
num = 100
num_str = str(num)
print("الرقم: " + num_str) # الرقم: 100
# نص إلى عدد عشري
price_str = "19.99"
price_float = float(price_str)
print(price_float * 2) # 39.98
# عدد إلى منطقي
print(bool(1)) # True
print(bool(0)) # False
print(bool("")) # False (نص فارغ)
استخدامات عملية:
# قراءة رقم من المستخدم
age = int(input("كم عمرك؟ "))
print(f"بعد 10 سنوات سيكون عمرك: {age + 10}")
6. العمل مع النصوص (Strings)
العمليات الأساسية:
text = "Python"
# الطول
print(len(text)) # 6
# الوصول لحرف
print(text[0]) # P
print(text[-1]) # n
# الشرائح
print(text[1:4]) # yth
print(text[:3]) # Pyt
print(text[3:]) # hon
الطرق الشائعة:
| الطريقة | النتيجة |
|---|---|
text.upper() | PYTHON |
text.lower() | python |
text.replace("P", "J") | Jython |
"y" in text | True |
text.startswith("P") | True |
تنسيق النصوص:
name = "أحمد"
age = 25
# f-String (الأفضل)
print(f"اسمي {name}، عمري {age}")
# format
print("اسمي {}، عمري {}".format(name, age))
# Concatenation
print("اسمي " + name)
7. العمل مع الأرقام
العمليات الحسابية:
a = 10
b = 3
print(a + b) # 13 (جمع)
print(a - b) # 7 (طرح)
print(a * b) # 30 (ضرب)
print(a / b) # 3.333... (قسمة)
print(a // b) # 3 (قسمة صحيحة)
print(a % b) # 1 (باقي القسمة)
print(a ** b) # 1000 (قوة)
عمليات مختصرة:
counter = 0
counter += 1 # counter = counter + 1
counter -= 1
counter *= 2
counter /= 2
دوال رياضية:
import math
print(abs(-5)) # 5
print(round(3.7)) # 4
print(max(1, 5, 3)) # 5
print(min(1, 5, 3)) # 1
print(sum([1, 2, 3])) # 6
print(math.sqrt(16)) # 4.0
print(math.pi) # 3.14159...
8. العمل مع القوائم (Lists)
إنشاء قائمة:
fruits = ["تفاح", "موز", "برتقال"]
numbers = [1, 2, 3, 4, 5]
empty = []
الوصول للعناصر:
fruits = ["تفاح", "موز", "برتقال"]
print(fruits[0]) # تفاح
print(fruits[1]) # موز
print(fruits[-1]) # برتقال (آخر عنصر)
التعديل:
fruits = ["تفاح", "موز"]
fruits.append("برتقال") # إضافة في النهاية
fruits.insert(0, "عنب") # إدراج في موضع
fruits.remove("موز") # حذف بالاسم
fruits.pop() # حذف الأخير
fruits.pop(0) # حذف بالموقع
print(fruits)
الشرائح:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[0:3]) # [1, 2, 3]
print(numbers[:5]) # [1, 2, 3, 4, 5]
print(numbers[5:]) # [6, 7, 8, 9, 10]
print(numbers[-3:]) # [8, 9, 10]
print(numbers[::2]) # [1, 3, 5, 7, 9]
print(numbers[::-1]) # [10, 9, 8, ..., 1]
الطول والترتيب:
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
print(len(numbers)) # 8
print(sorted(numbers)) # [1, 1, 2, 3, 4, 5, 6, 9]
numbers.sort() # ترتيب في المكان
numbers.reverse() # عكس الترتيب
9. العمل مع القواميس (Dictionaries)
إنشاء قاموس:
person = {
"name": "أحمد",
"age": 25,
"city": "عمّان"
}
الوصول للقيم:
print(person["name"]) # أحمد
print(person.get("age")) # 25
print(person.get("x", "غير موجود")) # غير موجود
التعديل والإضافة:
person = {"name": "أحمد"}
person["age"] = 25 # إضافة
person["name"] = "محمد" # تعديل
del person["age"] # حذف
التكرار:
person = {"name": "أحمد", "age": 25, "city": "عمّان"}
# المفاتيح
for key in person.keys():
print(key)
# القيم
for value in person.values():
print(value)
# الاثنان
for key, value in person.items():
print(f"{key}: {value}")
التحقق من الوجود:
person = {"name": "أحمد", "age": 25}
if "name" in person:
print("يوجد اسم")
if "city" in person:
print("يوجد مدينة")
else:
print("لا توجد مدينة")
10. أخطاء شائعة
1. خلط الأنواع:
# خطأ
age = "25"
result = age + 5 # TypeError
# صحيح
age = int("25")
result = age + 5 # 30
2. الوصول لعنصر غير موجود:
fruits = ["تفاح", "موز"]
# خطأ
print(fruits[5]) # IndexError
# صحيح
if len(fruits) > 5:
print(fruits[5])
3. نسيان علامات التنصيص:
# خطأ
name = أحمد # NameError
# صحيح
name = "أحمد"
4. استخدام = بدلاً من ==:
# خطأ (في الشرط)
if x = 5: # SyntaxError
# صحيح
if x == 5:
11. مشروع عملي — بطاقة شخصية
دعنا نطبق كل ما تعلمناه:
# بطاقة شخصية تفاعلية
print("=" * 40)
print("📝 إنشاء بطاقة شخصية")
print("=" * 40)
print()
# جمع البيانات
name = input("ما اسمك؟ ")
age = int(input("كم عمرك؟ "))
city = input("من أي مدينة أنت؟ ")
hobbies_input = input("ما هواياتك؟ (افصل بينها بفاصلة) ")
# تحويل الهوايات إلى قائمة
hobbies = [h.strip() for h in hobbies_input.split(",")]
# إنشاء قاموس
person = {
"الاسم": name,
"العمر": age,
"المدينة": city,
"الهوايات": hobbies,
}
# عرض البطاقة
print()
print("=" * 40)
print("📋 بطاقتك الشخصية")
print("=" * 40)
print(f"👤 الاسم: {person['الاسم']}")
print(f"🎂 العمر: {person['العمر']} سنة")
print(f"📍 المدينة: {person['المدينة']}")
print(f"🎯 الهوايات:")
for hobby in person["الهوايات"]:
print(f" • {hobby}")
print("=" * 40)
print(f"\n✨ شكراً {name}! بطاقة جميلة!")
عند التشغيل:
========================================
📝 إنشاء بطاقة شخصية
========================================
ما اسمك؟ أحمد
كم عمرك؟ 25
من أي مدينة أنت؟ عمّان
ما هواياتك؟ القراءة، البرمجة، الرياضة
========================================
📋 بطاقتك الشخصية
========================================
👤 الاسم: أحمد
🎂 العمر: 25 سنة
📍 المدينة: عمّان
🎯 الهوايات:
• القراءة
• البرمجة
• الرياضة
========================================
✨ شكراً أحمد! بطاقة جميلة!
12. تمارين عملية
التمرين 1: حساب المساحة
اكتب برنامجاً يطلب طول وعرض مستطيل، ثم يطبع مساحته.
التمرين 2: تحويل درجات الحرارة
اكتب برنامجاً يحول درجة الحرارة من مئوية إلى فهرنهايت.
القانون: F = C × 9/5 + 32
التمرين 3: قائمة التسوق
اكتب برنامجاً:
- يطلب من المستخدم 5 عناصر
- يخزنها في قائمة
- يطبع القائمة مع أرقامها
التمرين 4: معلومات كتاب
اكتب برنامجاً ينشئ قاموساً لكتاب يحتوي على:
- العنوان
- المؤلف
- سنة النشر
- عدد الصفحات
ثم يطبع المعلومات بشكل منسق.
قائمة تحقق — هل تعلمت؟
| المهارة | الحالة |
|---|---|
| إنشاء المتغيرات واستخدامها | ⬜ |
| فهم أنواع البيانات الستة | ⬜ |
استخدام type() لمعرفة النوع | ⬜ |
| تحويل الأنواع | ⬜ |
| العمل مع النصوص | ⬜ |
| العمل مع الأرقام | ⬜ |
| إنشاء القوائم والتعديل عليها | ⬜ |
| إنشاء القواميس والوصول إليها | ⬜ |
الخلاصة
في هذا المقال، تعلمت:
- المتغيرات — صناديق لتخزين البيانات
- أنواع البيانات الستة — str, int, float, bool, list, dict
- تحويل الأنواع — من نوع لآخر
- العمل مع النصوص — العمليات والطرق
- العمل مع الأرقام — العمليات والدوال
- القوائم — إنشاء وتعديل والشرائح
- القواميس — أزواج مفتاح-قيمة
هذه هي الأساسيات التي ستبني عليها كل ما ستتعلمه لاحقاً في Python!
في المقال القادم: سنتعلم الشروط (if/else) — كيف تجعل برنامجك يتخذ قرارات!
جرب التمارين الأربعة قبل الانتقال للمقال التالي. الممارسة هي المفتاح!
ما نوع البيانات الذي وجدته الأكثر إثارة؟ شاركنا في التعليقات!
🎁 هدية مجانية: ورقة Python المرجعية
احصل على الدليل السريع لأشهر أوامر Python — 8 صفحات PDF مجاناً
📥 حمّل الورقة الآنفريق نهضة
فريق عربي متخصص في التقنية والذكاء الاصطناعي وتطوير الذات
أول برنامج لك بلغة Python — Hello World وأكثر
الشروط في Python — كيف تجعل برنامجك يتخذ قرارات؟
📚 مقالات ذات صلة
بناء تطبيق مهام كامل بلغة Python — مع قاعدة بيانات
دليل عملي لبناء تطبيق إدارة مهام احترافي بلغة Python — مع قاعدة بيانات SQLite وواجهة رسومية Tkinter
بناء آلة حاسبة بلغة Python — مشروع كامل خطوة بخطوة
دليل عملي كامل لبناء آلة حاسبة احترافية بلغة Python — من التخطيط إلى التنفيذ، مع واجهة رسومية بـ Tkinter
Git و GitHub للمبتدئين — احفظ كودك وشاركه مع العالم
دليل شامل لتعلم Git و GitHub من الصفر — تثبيت، أوامر أساسية، رفع أول مشروع، والعمل مع الفروع