المتغيرات وأنواع البيانات في بايثون: دليل عملي للمبتدئين
ماذا سنتعلم؟ في هذا الدرس، سنستكشف أساسيات المتغيرات وأنواع البيانات في بايثون، وكيفية استخدامها لتخزين المعلومات ومعالجتها بكفاءة. سنبني معًا سكريبتًا بسيطًا يوضح هذه المفاهيم الأساسية.
الخطوة 1: تعريف المتغيرات وتخزين القيم
المتغيرات هي أسماء نستخدمها للإشارة إلى مواقع في الذاكرة حيث يتم تخزين البيانات. في بايثون، لا تحتاج إلى تحديد نوع المتغير صراحةً؛ بايثون تستنتجه تلقائيًا. لنقم بتعريف بعض المتغيرات وتخزين قيم مختلفة فيها.
# تعريف متغير من نوع نص (string) لتخزين اسم المستخدم
user_name = "أحمد محمد"
# تعريف متغير من نوع عدد صحيح (integer) لتخزين عمر المستخدم
user_age = 30
# تعريف متغير من نوع عدد عشري (float) لتخزين متوسط الدرجات
average_score = 95.5
# تعريف متغير من نوع منطقي (boolean) لتحديد ما إذا كان المستخدم نشطًا
is_active = True
# طباعة قيم المتغيرات للتحقق
print("الاسم:", user_name)
print("العمر:", user_age)
print("متوسط الدرجات:", average_score)
print("نشط:", is_active)
ملاحظة تقنية: بايثون لغة ديناميكية النوع (Dynamically Typed)، مما يعني أن نوع المتغير يتم تحديده في وقت التشغيل بناءً على القيمة المسندة إليه.
الخطوة 2: فهم أنواع البيانات الأساسية (Integers, Floats, Strings, Booleans)
لكل قيمة في بايثون نوع بيانات يحدد طبيعتها والعمليات التي يمكن إجراؤها عليها. يمكننا استخدام الدالة type() لمعرفة نوع أي متغير.
# متابعة من الخطوة السابقة، أو إعادة تعريف المتغيرات لأغراض الشرح
user_name = "سارة علي"
user_age = 25
average_score = 88.2
is_active = False
# طباعة نوع كل متغير باستخدام الدالة type()
print("\nأنواع البيانات:")
print("نوع user_name:", type(user_name)) # سيطبع <class 'str'>
print("نوع user_age:", type(user_age)) # سيطبع <class 'int'>
print("نوع average_score:", type(average_score)) # سيطبع <class 'float'>
print("نوع is_active:", type(is_active)) # سيطبع <class 'bool'>
ملاحظة تقنية: المتغيرات المنطقية (Booleans) هي حالة خاصة من الأعداد الصحيحة في بايثون، حيث يتم التعامل معTrueكـ 1 وFalseكـ 0 في سياقات معينة، لكن يفضل استخدامها كقيم منطقية فقط.
الخطوة 3: تغيير قيم المتغيرات وإجراء عمليات بسيطة
يمكن تحديث قيم المتغيرات في أي وقت. كما يمكن إجراء عمليات حسابية ومنطقية عليها حسب نوعها.
# تحديث قيمة متغير العمر
user_age = user_age + 5 # إضافة 5 سنوات للعمر الحالي
print("\nالعمر بعد التحديث:", user_age)
# دمج سلاسل نصية (Concatenation)
greeting = "مرحباً بك يا " + user_name + "!"
print(greeting)
# عملية منطقية بسيطة
if user_age > 20 and is_active:
print("المستخدم بالغ ونشط.")
else:
print("المستخدم ليس بالغاً و/أو غير نشط.")
# تحويل نوع البيانات (Type Casting) - مثال
price_str = "150"
price_int = int(price_str) # تحويل من نص إلى عدد صحيح
total_price = price_int * 2
print("السعر الإجمالي:", total_price)
ملاحظة تقنية: تحويل الأنواع (Type Casting) ضروري جدًا عند التعامل مع المدخلات من المستخدم (التي تكون عادةً نصوصًا) أو عند الحاجة لإجراء عمليات تتطلب أنواعًا معينة من البيانات.
الكود النهائي الكامل
إليك السكربت كاملاً الذي يجمع جميع المفاهيم التي تعلمناها:
# المتغيرات وأنواع البيانات في بايثون: دليل عملي للمبتدئين
# الخطوة 1: تعريف المتغيرات وتخزين القيم
# تعريف متغير من نوع نص (string) لتخزين اسم المستخدم
user_name = "أحمد محمد"
# تعريف متغير من نوع عدد صحيح (integer) لتخزين عمر المستخدم
user_age = 30
# تعريف متغير من نوع عدد عشري (float) لتخزين متوسط الدرجات
average_score = 95.5
# تعريف متغير من نوع منطقي (boolean) لتحديد ما إذا كان المستخدم نشطًا
is_active = True
# طباعة قيم المتغيرات للتحقق
print("---- قيم المتغيرات الأولية ----")
print("الاسم:", user_name)
print("العمر:", user_age)
print("متوسط الدرجات:", average_score)
print("نشط:", is_active)
# الخطوة 2: فهم أنواع البيانات الأساسية (Integers, Floats, Strings, Booleans)
# طباعة نوع كل متغير باستخدام الدالة type()
print("\n---- أنواع البيانات ----")
print("نوع user_name:", type(user_name))
print("نوع user_age:", type(user_age))
print("نوع average_score:", type(average_score))
print("نوع is_active:", type(is_active))
# الخطوة 3: تغيير قيم المتغيرات وإجراء عمليات بسيطة
print("\n---- عمليات على المتغيرات ----")
# تحديث قيمة متغير العمر
user_age = user_age + 5 # إضافة 5 سنوات للعمر الحالي
print("العمر بعد التحديث:", user_age)
# دمج سلاسل نصية (Concatenation)
greeting = "مرحباً بك يا " + user_name + "!"
print(greeting)
# عملية منطقية بسيطة
if user_age > 20 and is_active:
print("المستخدم بالغ ونشط.")
else:
print("المستخدم ليس بالغاً و/أو غير نشط.")
# تحويل نوع البيانات (Type Casting) - مثال
price_str = "150"
price_int = int(price_str) # تحويل من نص إلى عدد صحيح
total_price = price_int * 2
print("السعر الإجمالي:", total_price)
# مثال آخر على تحديث متغير منطقي
is_active = False # المستخدم أصبح غير نشط
print("حالة النشاط بعد التحديث:", is_active)
النتيجة المتوقعة
عند تشغيل السكربت أعلاه، ستحصل على المخرجات التالية في الطرفية، موضحًا كيفية تعريف المتغيرات، استنتاج أنواعها، وتعديل قيمها وإجراء عمليات عليها:
---- قيم المتغيرات الأولية ----
الاسم: أحمد محمد
العمر: 30
متوسط الدرجات: 95.5
نشط: True
---- أنواع البيانات ----
نوع user_name: <class 'str'>
نوع user_age: <class 'int'>
نوع average_score: <class 'float'>
نوع is_active: <class 'bool'>
---- عمليات على المتغيرات ----
العمر بعد التحديث: 35
مرحباً بك يا أحمد محمد!
المستخدم بالغ ونشط.
السعر الإجمالي: 300
حالة النشاط بعد التحديث: False