الدرس 3

المتغيرات وأنواع البيانات

الوحدة 1: المقدمة وقت القراءة: 15 دقيقة

ما هي المتغيرات؟

المتغيرات هي حاويات تخزن قيم البيانات. فكر فيها كصناديق مُعَلَّمة حيث يمكنك وضع معلومات واسترجاعها لاحقاً باستخدام الاسم (اسم المتغير).

Python
# إنشاء المتغيرات
الاسم = "سارة"
العمر = 25
الطول = 1.65
طالب = True

# استخدام المتغيرات
print(الاسم)      # الناتج: سارة
print(العمر)      # الناتج: 25

قواعد تسمية المتغيرات

بايثون لديها قواعد لتسمية المتغيرات:

  • يجب أن تبدأ بحرف أو شرطة سفلية (_)
  • يمكن أن تحتوي على حروف وأرقام وشرطات سفلية
  • حساسة لحالة الأحرف (nameName)
  • لا يمكن أن تكون كلمات محجوزة في بايثون (if، for، while، إلخ)
Python
# أسماء متغيرات صحيحة
اسم_المستخدم = "محمد"
العمر2 = 30
_خاص = "سري"
الاسم_الأول = "ليلى"

# أسماء متغيرات خاطئة (ستسبب أخطاء)
# 2الاسم = "خطأ"     # لا يمكن البدء برقم
# اسمي-هو = "خطأ"   # لا يمكن استخدام الشرطة
# class = "خطأ"     # لا يمكن استخدام كلمات بايثون المحجوزة
أفضل الممارسات

استخدم أسماء وصفية و snake_case (كلمات مفصولة بشرطات سفلية). مثال: عمر_المستخدم، السعر_الإجمالي، صالح

أنواع البيانات

بايثون لديها عدة أنواع بيانات مدمجة:

النوع الوصف مثال
str نص/سلسلة نصية "مرحباً"، 'عالم'
int عدد صحيح 42، -17، 0
float عدد عشري 3.14، -0.5
bool قيمة منطقية (صح/خطأ) True، False
list مجموعة مرتبة [1, 2, 3]
dict أزواج مفتاح-قيمة {"الاسم": "أحمد"}

النصوص (str)

النصوص هي تسلسلات من الأحرف، تُستخدم للنص:

Python
# إنشاء النصوص
مفرد = 'مرحباً'
مزدوج = "عالم"
متعدد_الأسطر = """هذا نص
متعدد الأسطر"""

# دمج النصوص
الكامل = مفرد + " " + مزدوج
print(الكامل)  # الناتج: مرحباً عالم

# تكرار النص
صدى = "ها" * 3
print(صدى)  # الناتج: هاهاها

# طول النص
رسالة = "بايثون"
print(len(رسالة))  # الناتج: 6

# دوال النصوص
نص = "  مرحباً بالعالم  "
print(نص.upper())       # "  مرحباً بالعالم  " (للأحرف الإنجليزية)
print(نص.strip())       # "مرحباً بالعالم"
print(نص.replace("عالم", "بايثون"))  # "  مرحباً بالبايثون  "

الأعداد (int و float)

بايثون تتعامل مع الأعداد الصحيحة والعشرية:

Python
# الأعداد الصحيحة
العمر = 25
العدد = -10
رقم_كبير = 1_000_000  # الشرطات السفلية للقراءة

# الأعداد العشرية
السعر = 19.99
باي = 3.14159
علمي = 1.5e6  # 1500000.0

# العمليات الحسابية الأساسية
أ, ب = 10, 3

print(أ + ب)   # الجمع: 13
print(أ - ب)   # الطرح: 7
print(أ * ب)   # الضرب: 30
print(أ / ب)   # القسمة: 3.333...
print(أ // ب)  # القسمة الصحيحة: 3
print(أ % ب)   # الباقي: 1
print(أ ** ب)  # الأس: 1000

القيم المنطقية (bool)

القيم المنطقية تمثل قيم الصح والخطأ:

Python
# القيم المنطقية
نشط = True
مسؤول = False

# عمليات المقارنة ترجع قيم منطقية
س = 5
print(س > 3)   # True
print(س == 5)  # True
print(س != 5)  # False
print(س < 3)   # False

# العوامل المنطقية
print(True and False)  # False
print(True or False)   # True
print(not True)        # False

# مثال عملي
العمر = 20
بالغ = العمر >= 18
print(f"هل هو بالغ: {بالغ}")  # هل هو بالغ: True

فحص النوع والتحويل

يمكنك فحص وتحويل الأنواع:

Python
# فحص النوع باستخدام type()
الاسم = "سارة"
العمر = 25
الطول = 1.65

print(type(الاسم))    # <class 'str'>
print(type(العمر))    # <class 'int'>
print(type(الطول))    # <class 'float'>

# تحويل الأنواع
رقم_نص = "42"
رقم_صحيح = int(رقم_نص)     # نص إلى صحيح: 42
رقم_عشري = float(رقم_نص)   # نص إلى عشري: 42.0

السعر = 19.99
السعر_صحيح = int(السعر)    # عشري إلى صحيح: 19 (اقتطاع)
السعر_نص = str(السعر)      # عشري إلى نص: "19.99"

# كن حذراً مع التحويلات!
# int("مرحباً")  # خطأ: قيمة غير صالحة

النصوص المنسقة (F-Strings)

النصوص المنسقة هي الطريقة الحديثة لتنسيق النصوص في بايثون:

Python
الاسم = "سارة"
العمر = 25
الطول = 1.65

# نص منسق أساسي
print(f"اسمي {الاسم}")

# تعبيرات في النص المنسق
print(f"بعد 5 سنوات، سأكون {العمر + 5}")

# تنسيق الأرقام
باي = 3.14159265
print(f"باي لخانتين عشريتين: {باي:.2f}")  # 3.14

السعر = 1234.5
print(f"السعر: ${السعر:,.2f}")  # $1,234.50

# المحاذاة والحشو
for i in range(1, 4):
    print(f"{i:2d} تربيع يساوي {i**2:3d}")

التعيين المتعدد

بايثون تسمح بتعيين متغيرات متعددة دفعة واحدة:

Python
# التعيين المتعدد
س, ص, ع = 1, 2, 3
print(س, ص, ع)  # 1 2 3

# تبديل المتغيرات
أ, ب = 5, 10
أ, ب = ب, أ
print(أ, ب)  # 10 5

# نفس القيمة لمتغيرات متعددة
س = ص = ع = 0
print(س, ص, ع)  # 0 0 0
الكتابة الديناميكية

بايثون ذات كتابة ديناميكية، مما يعني أنك لا تحتاج لتحديد أنواع المتغيرات. المتغير يمكن أن يغير نوعه:

س = 10       # س عدد صحيح
س = "مرحباً"  # الآن س نص
س = [1, 2]   # الآن س قائمة

تحدي: المعلومات الشخصية

أنشئ برنامجاً يخزن ويعرض معلومات شخصية:

  1. خزّن اسمك (نص)
  2. خزّن عمرك (عدد صحيح)
  3. خزّن طولك بالمتر (عدد عشري)
  4. خزّن هل أنت طالب (قيمة منطقية)
  5. اطبع كل المعلومات باستخدام النصوص المنسقة
  6. احسب واطبع عمرك بالأشهر
أظهر الحل
الاسم = "أحمد محمد"
العمر = 22
الطول = 1.75
طالب = True

print(f"الاسم: {الاسم}")
print(f"العمر: {العمر} سنة")
print(f"الطول: {الطول:.2f} متر")
print(f"طالب: {طالب}")

العمر_بالأشهر = العمر * 12
print(f"العمر بالأشهر: {العمر_بالأشهر}")

النقاط الرئيسية

ملخص
  • المتغيرات تخزن البيانات باستخدام عامل التعيين =
  • الأنواع الرئيسية: str، int، float، bool
  • استخدم type() لفحص نوع المتغير
  • حوّل بين الأنواع باستخدام int()، float()، str()
  • النصوص المنسقة (f"...") هي أفضل طريقة لتنسيق الناتج
  • استخدم أسماء متغيرات وصفية بأسلوب snake_case

في الدرس القادم، سنتعلم عن العوامل والتعبيرات لإجراء الحسابات والمقارنات!