في هذا الدرس الممتع من سلسلة «فكّر كمبرمج بايثون»، ستتعلم كيف يتذكّر الحاسوب المعلومات داخل متغيرات، وما هي أنواع البيانات الأساسية (أعداد، نصوص، قيم منطقية). سنعمل عمليًا على إنشاء متغيرات وفهم الدالة ()type والتعامل مع أخطاء شائعة.
أهداف التعلم
بنهاية هذا الدرس، ستكون قادرًا على:
- فهم مفهوم المتغير (Variable) ودوره في تخزين المعلومات.
- إنشاء متغيرات لأنواع بيانات مختلفة في Python.
- التمييز بين الأعداد والنصوص والقيم المنطقية.
- استخدام الدالة()
typeلمعرفة نوع البيانات. - التعامل مع الأخطاء الشائعة عند تعيين المتغيرات.
خارطة التعلم
- من الحفظ إلى المعالجة
- ما هو المتغير؟ وكيف تُخزّن البيانات في الذاكرة؟
- ما أنواع البيانات التي يفهمها الحاسوب؟
- كيف نتعامل مع النصوص والأرقام؟
المتطلبات السابقة
- إتمام الدرسين السابقين: فهم معنى البرمجة، وإعداد Python وVS Code.
لحظة البداية
تخيّل أن لديك عشرات المعلومات: اسمك، عمرك، درجتك... مثل الإنسان، يحتاج الحاسوب إلى “ذاكرة” لحفظ المعلومات. وهنا يظهر البطل: المتغير.
المتغير هو اسم يشير إلى قيمة مخزّنة في الذاكرة. فكّر فيه كصندوق عليه ملصق (الاسم)، وداخله قيمة تستخدمها لاحقًا.
في Python، لا تحتاج لتعريف نوع المتغير مسبقًا؛ تُحدّده بايثون تلقائيًا من القيمة:
name = "Sara"
age = 21
تفهم بايثون تلقائيًا أن name نص (str) وage عدد صحيح (int).
🧠 سؤال تفكيري: كيف تفرّق بايثون بين الرقم 21 والنص "21"؟
شرح المفهوم خطوة بخطوة
أولًا: ما هو المتغير؟
يمثل موقعًا في الذاكرة تُخزَّن فيه قيمة. عند استدعاء اسمه تحصل على القيمة.
variable_name = value
name = "Omar"
print(name)
النتيجة: Omar — إذن المتغير = اسم + قيمة.
ثانيًا: القواعد الذهبية لتسمية المتغيرات
- يبدأ بحرف أو شرطة سفلية
_، ولا يبدأ برقم. - بدون فراغات أو رموز خاصة، والحروف الكبيرة/الصغيرة مهمة (Case Sensitive).
- اختر اسمًا معبرًا:
student_name = "Lina" # ✅ جيد # 1name = "Ali" # ❌ خطأ: يبدأ برقم
ثالثًا: أنواع البيانات الأساسية في Python
| النوع | مثال | الوصف |
|---|---|---|
int |
42 | عدد صحيح |
float |
3.14 | عدد عشري |
str |
"Hello" |
نصوص |
bool |
True / False |
قيمة منطقية |
NoneType |
None |
قيمة فارغة |
رابعًا: كيف أعرف نوع البيانات؟
باستخدام()type:
x = 10
print(type(x)) # <class 'int'>
name = "Sara"
pi = 3.14
is_student = True
print(type(name)) # <class 'str'>
print(type(pi)) # <class 'float'>
print(type(is_student))# <class 'bool'>
خامسًا: تحويل الأنواع
يمكنك التحويل باستخدام دوال جاهزة:
x = 10
y = str(x) # تحويل الرقم إلى نص
z = float(x) # تحويل الرقم إلى عشري
🧠 فكر قليلًا: لماذا قد تحتاج لتحويل الأعداد إلى نصوص؟ (تلميح: لدمجها داخل جمل مطبوعة).
تمثيل بصري
┌────────────────────────┐
│ student_name = "Ali" │
│ student_age = 20 │
└────────────────────────┘
# الاسم = ملصق الصندوق
# القيمة = ما بداخل الصندوق
التطبيق العملي
جرّب كتابة الكود في VS Code:
# تعريف متغيرات بأنواع مختلفة
name = "Lina"
age = 22
height = 1.68
is_student = True
# طباعة القيم وأنواعها
print("Name:", name)
print("Age:", age)
print("Height:", height)
print("Student:", is_student)
النتيجة المتوقعة:
Name: Lina
Age: 22
Height: 1.68
Student: True
تحليل الكود
| السطر | العنصر | الوصف |
|---|---|---|
| 1 | name = "Lina" |
متغير نصي |
| 2 | age = 22 |
متغير عددي |
| 3 | height = 1.68 |
عدد عشري |
| 4 | is_student = True |
قيمة منطقية |
| 6–9 | print() |
عرض النتائج في الشاشة |
دراسة حالة واقعية
منى تعمل على مشروع بيانات عملاء: اسم، هاتف، حالة اشتراك. باستخدام المتغيرات نظّمت البيانات تمهيدًا لإدخالها قاعدة بيانات. المتغيرات هي اللبنات الأولى لأي تطبيق برمجي.
تحدٍّ واقعي
عرّف المتغيرات الآتية واطبع جملة مدمجة:
city→ اسم مدينتكtemperature→ درجة الحرارة اليومis_raining→ هل الجو ممطر؟ (True/False)
city = "Cairo"
temperature = 29
is_raining = False
print("Today in", city + ",", "the temperature is", temperature, ", raining:", is_raining)
زاوية السوق
المتغيرات موجودة في كل المجالات: البنوك، الألعاب، علم البيانات... تُخزن نتائج مؤقتة وتدير الحالة والمنطق. لا يوجد كود بلا متغيرات.
تتبّع التنفيذ
| المتغير | القيمة | النوع | الملاحظة |
|---|---|---|---|
| name | "Lina" |
str |
نص |
| age | 22 |
int |
عدد صحيح |
| height | 1.68 |
float |
عدد عشري |
| is_student | True |
bool |
قيمة منطقية |
التدريبات المتدرجة
- المستوى 1: أنشئ متغيرًا باسم
languageوخزّن فيه"Python". اطبعه. - المستوى 2: عرّف
a=5,b=7, ثمsum=a+bواطبع الناتج. - المستوى 3 (تحدي): بدّل القيم بين متغيرين باستخدام متغير مؤقت.
اختبار تطبيقي
number = "10"
result = number + 5 # هل سينجح؟
لن ينجح لأن أحدهما نص والآخر رقم. يلزم تحويل النوع أولًا: int(number) + 5 أو str(5) للدمج كنص.
تقييم ذاتي
| المهارة | أتقنتها ✅ | أحتاج مراجعة 🔁 |
|---|---|---|
| تعريف المتغيرات | ✅ | 🔁 |
| فهم أنواع البيانات | ✅ | 🔁 |
معرفة النوع بـ type() |
✅ | 🔁 |
| التعامل مع الأخطاء البسيطة | ✅ | 🔁 |
ما وراء الكود
المتغيرات ليست مجرد أدوات للحفظ؛ إنها تمثيل لذاكرة البرنامج. كل مرة تكتب فيها x = 5 فأنت تُعلّم الحاسوب تذكر معلومة جديدة.
ملخص الدرس
- المتغيرات تحفظ القيم داخل الذاكرة.
- القيم قد تكون نصوصًا أو أعدادًا أو قيمًا منطقية.
- Python تتعرف على النوع تلقائيًا.
type()تُخبرك بنوع البيانات.
❓ أسئلة المراجعة
-
ما هو المتغير؟
عرض الإجابة
هو اسم يُستخدم للإشارة إلى قيمة مخزّنة في ذاكرة الحاسوب يمكن تغييرها واستخدامها لاحقًا.
-
هل يمكن أن يبدأ اسم المتغير برقم؟ ولماذا؟
عرض الإجابة
❌ لا، لا يمكن أن يبدأ برقم لأن ذلك يخالف قواعد اللغة. يجب أن يبدأ بحرف أو بشرطة سفلية (
_). -
ما الفرق بين
"5"و5؟عرض الإجابة
"5"نص (من النوعstr)، بينما5عدد صحيح (int) — الأول لا يمكن جمعه كعدد إلا بعد تحويله.
نصائح للمبرمج المبتدئ
- استخدم أسماء واضحة للمتغيرات.
- تجنّب إعادة استخدام الاسم لغرض مختلف.
- استعن بـ
type()لفهم الكائنات قبل الاستخدام.
- التوثيق الرسمي للبايثون
- Google Colab (جرّب الأكواد أونلاين)
