أساسيات بايثون 5: شرح المتغيرات Variables في Python للمبتدئين

مرحبًا بك في الدرس الخامس من سلسلة أساسيات بايثون على موقع بايثون العرب. في الدرس السابق تعلمنا شرح التعليقات Comments في بايثون، وكيف نستخدم علامة # لكتابة ملاحظات داخل الكود أو تعطيل بعض الأسطر مؤقتًا.

في هذا الدرس سننتقل إلى مفهوم مهم جدًا في أي لغة برمجة، وهو المتغيرات في بايثون Python Variables. المتغيرات هي الطريقة التي نخزن بها القيم داخل البرنامج، مثل الاسم، العمر، السعر، النتيجة، أو أي بيانات نريد استخدامها لاحقًا.

وإذا أردت تجربة الأمثلة مباشرة، يمكنك استخدام محرر بايثون العرب وتشغيل الأكواد خطوة بخطوة.

{getToc} $title={محتوى المقال}

{alertInfo} المتغير في بايثون هو اسم يشير إلى قيمة مخزنة في الذاكرة، ويمكن استخدامه لاحقًا بدل كتابة القيمة نفسها كل مرة.

ما هي المتغيرات في بايثون؟

المتغير هو اسم نستخدمه لتخزين قيمة داخل البرنامج. تخيل أن لديك صندوقًا، وتضع عليه اسمًا، ثم تضع داخله شيئًا معينًا. في البرمجة، اسم الصندوق هو المتغير، والشيء الموجود داخله هو القيمة.

مثال بسيط:

age = 25
name = "Ahmed"

print(age)
print(name)

في المثال السابق أنشأنا متغيرين:

  • age يحتوي على الرقم 25.
  • name يحتوي على النص "Ahmed".

وعند طباعة المتغيرين ستكون النتيجة:

25
Ahmed

إنشاء متغير في بايثون

في بايثون لا تحتاج إلى كتابة نوع المتغير قبل إنشائه. يكفي أن تكتب اسم المتغير، ثم علامة الإسناد =، ثم القيمة التي تريد تخزينها.

x = 5
y = "John"

print(x)
print(y)

لاحظ أننا لم نكتب مثلًا int x أو string y. بايثون تفهم نوع القيمة تلقائيًا، وهذا من الأشياء التي تجعلها سهلة للمبتدئين.

{alertSuccess} في بايثون، يتم إنشاء المتغير بمجرد إسناد قيمة إليه لأول مرة.

ما معنى علامة = في المتغيرات؟

علامة = في بايثون لا تعني المساواة الحسابية فقط، بل تُستخدم هنا للإسناد. أي أننا نقول لبايثون: خزّن هذه القيمة داخل هذا الاسم.

score = 90

المعنى هنا: خزّن الرقم 90 داخل المتغير score.

تغيير قيمة المتغير

يمكنك تغيير قيمة المتغير في أي وقت بإسناد قيمة جديدة له.

x = 4
print(x)

x = "Sally"
print(x)

الناتج:

4
Sally

في البداية كان x رقمًا، ثم أصبح نصًا. هذه المرونة تسمى غالبًا Dynamic Typing، أي أن نوع المتغير يتحدد حسب القيمة التي يحملها.

{alertWarning} رغم أن بايثون تسمح بتغيير نوع المتغير، حاول ألا تغيّر نوع المتغير كثيرًا بدون سبب، حتى لا يصبح الكود مربكًا.

معرفة نوع المتغير باستخدام type

أحيانًا تريد معرفة نوع القيمة الموجودة داخل المتغير. هل هي رقم؟ نص؟ قائمة؟ في هذه الحالة نستخدم الدالة type().

x = 5
y = "John"

print(type(x))
print(type(y))

الناتج:

<class 'int'>
<class 'str'>

هذا يعني أن x من نوع int أي رقم صحيح، وأن y من نوع str أي نص.

تحويل نوع المتغير Casting

في بعض الحالات تحتاج إلى تحويل القيمة من نوع إلى نوع آخر. مثلًا قد يكون لديك الرقم 3 وتريد تحويله إلى نص، أو لديك نص يحتوي على رقم وتريد تحويله إلى عدد.

نستخدم دوال مثل:

  • str() لتحويل القيمة إلى نص.
  • int() لتحويل القيمة إلى رقم صحيح.
  • float() لتحويل القيمة إلى رقم عشري.
x = str(3)
y = int(3)
z = float(3)

print(x, type(x))
print(y, type(y))
print(z, type(z))

الناتج:

3 <class 'str'>
3 <class 'int'>
3.0 <class 'float'>
{alertInfo} التحويل بين الأنواع مهم جدًا عند التعامل مع مدخلات المستخدم، لأن input غالبًا ترجع البيانات كنص.

النصوص في المتغيرات: علامات مفردة أم مزدوجة؟

عند تخزين نص داخل متغير، يمكنك استخدام علامات اقتباس مزدوجة أو مفردة. الطريقتان صحيحتان:

x = "John"
y = 'John'

print(x == y)

الناتج:

True

المهم أن تفتح علامة الاقتباس وتغلقها بنفس النوع. إذا بدأت بعلامة مزدوجة، أغلق بمزدوجة، وإذا بدأت بمفردة، أغلق بمفردة.

هل أسماء المتغيرات حساسة لحالة الأحرف؟

نعم. في بايثون، المتغيرات حساسة لحالة الأحرف. هذا يعني أن a و A متغيران مختلفان.

a = 4
A = "Sally"

print(a)
print(A)

الناتج:

4
Sally
{alertWarning} انتبه جيدًا لحالة الأحرف. المتغير name يختلف عن Name و NAME.

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

حتى يكون اسم المتغير صحيحًا في بايثون، يجب أن يتبع قواعد محددة:

  • يجب أن يبدأ بحرف أو شرطة سفلية _.
  • لا يمكن أن يبدأ برقم.
  • يمكن أن يحتوي على حروف وأرقام وشرطة سفلية فقط.
  • لا يحتوي على مسافات.
  • لا تستخدم الكلمات المحجوزة في بايثون مثل if و for و class.
  • الأسماء حساسة لحالة الأحرف.

أمثلة على أسماء صحيحة

myvar = "John"
my_var = "John"
_my_var = "John"
myVar = "John"
MYVAR = "John"
myvar2 = "John"

أمثلة على أسماء خاطئة

# أمثلة خاطئة
2myvar = "John"
my-var = "John"
my var = "John"

الأخطاء في المثال السابق سببها أن الاسم يبدأ برقم، أو يحتوي على شرطة عادية، أو يحتوي على مسافة.

أفضل طريقة لتسمية المتغيرات

عندما يتكون اسم المتغير من أكثر من كلمة، يفضل في بايثون استخدام أسلوب snake_case، وهو كتابة الكلمات بحروف صغيرة وفصلها بشرطة سفلية.

user_name = "Ahmed"
total_price = 150
student_age = 20

هذه الطريقة تجعل الكود أوضح وأسهل قراءة، خصوصًا عندما يكبر المشروع.

{alertSuccess} استخدم أسماء واضحة مثل student_name بدل أسماء غامضة مثل x، إلا إذا كان المثال بسيطًا جدًا.

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

تسمح بايثون بإسناد أكثر من قيمة لأكثر من متغير في سطر واحد.

x, y, z = "Orange", "Banana", "Cherry"

print(x)
print(y)
print(z)

الناتج:

Orange
Banana
Cherry
{alertWarning} عند إسناد قيم متعددة، يجب أن يكون عدد المتغيرات مساويًا لعدد القيم، وإلا سيظهر خطأ.

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

يمكنك أيضًا إسناد نفس القيمة لأكثر من متغير في سطر واحد:

x = y = z = "Orange"

print(x)
print(y)
print(z)

الناتج:

Orange
Orange
Orange

فك القيم من قائمة أو Tuple إلى متغيرات

إذا كانت لديك قائمة أو Tuple تحتوي على عدة قيم، يمكنك توزيع هذه القيم على متغيرات مباشرة. هذه العملية تسمى Unpacking.

fruits = ["Apple", "Banana", "Cherry"]

x, y, z = fruits

print(x)
print(y)
print(z)

الناتج:

Apple
Banana
Cherry

هذه الطريقة مفيدة عندما تكون لديك بيانات مرتبة وتريد تخزين كل جزء منها في متغير مستقل.

طباعة المتغيرات باستخدام print

أكثر طريقة ستستخدمها في البداية لعرض قيمة المتغير هي دالة print().

name = "Ahmed"
age = 25

print(name)
print(age)

ويمكنك دمج النصوص مع المتغيرات بأكثر من طريقة.

دمج النصوص مع المتغيرات باستخدام +

يمكن استخدام علامة + لدمج النصوص مع بعضها:

x = "awesome"

print("Python is " + x)

الناتج:

Python is awesome

لكن انتبه، إذا حاولت دمج نص مع رقم باستخدام + مباشرة، سيظهر خطأ.

x = 5

# هذا السطر يسبب خطأ
# print("The number is " + x)

الحل هو تحويل الرقم إلى نص باستخدام str():

x = 5

print("The number is " + str(x))

استخدام f-string مع المتغيرات

من أفضل وأسهل الطرق لدمج المتغيرات داخل النصوص في بايثون استخدام f-string. نكتب حرف f قبل النص، ثم نضع المتغيرات داخل أقواس معقوفة {}.

name = "Ahmed"
age = 25

print(f"My name is {name} and I am {age} years old.")

الناتج:

My name is Ahmed and I am 25 years old.
{alertSuccess} للمبتدئين، استخدام f-string غالبًا أسهل وأوضح من الدمج بعلامة +، خصوصًا عند وجود أرقام داخل النص.

الفرق بين استخدام + مع النصوص والأرقام

علامة + لها معنى مختلف حسب نوع البيانات:

المثال المعنى الناتج
5 + 3 جمع حسابي 8
"Py" + "thon" دمج نصوص Python
"Age: " + 25 خطأ لأنك تدمج نصًا مع رقم مباشرة TypeError

أخطاء شائعة عند استخدام المتغيرات

الخطأ سبب المشكلة التصحيح
my score = 100 اسم المتغير يحتوي على مسافة my_score = 100
2name = "Ali" اسم المتغير يبدأ برقم name2 = "Ali"
print(Name) المتغير مختلف عن name بسبب حالة الأحرف اكتب نفس الاسم تمامًا
"Age: " + age دمج نص مع رقم مباشرة استخدم f-string أو str(age)

تمارين بسيطة على المتغيرات

تمرين 1: إنشاء متغيرات

أنشئ ثلاثة متغيرات: name و age و city، ثم اطبع جملة تحتوي عليها.

name = "Mona"
age = 22
city = "Cairo"

print(f"{name} is {age} years old and lives in {city}.")

تمرين 2: اكتشاف الخطأ

ما الخطأ في الكود التالي؟

my score = 100
print(my score)

الخطأ أن اسم المتغير يحتوي على مسافة. التصحيح:

my_score = 100
print(my_score)

تمرين 3: فك القيم

استخدم Unpacking لتفكيك البيانات التالية إلى متغيرات مستقلة:

info = ("Sara", 30, "Engineer")

name_info, age_info, job_info = info

print(f"{name_info} works as {job_info}.")

ماذا تعلمنا في هذا الدرس؟

  • تعلمنا أن المتغيرات تستخدم لتخزين القيم داخل البرنامج.
  • عرفنا أن بايثون لا تحتاج إلى تحديد نوع المتغير مسبقًا.
  • استخدمنا type() لمعرفة نوع المتغير.
  • تعلمنا تحويل الأنواع باستخدام str() و int() و float().
  • تعرفنا على قواعد تسمية المتغيرات في Python.
  • تعلمنا الإسناد المتعدد وفك القيم من القوائم أو Tuples.
  • استخدمنا print() و f-string لطباعة المتغيرات داخل النصوص.

روابط مفيدة من بايثون العرب

الخلاصة

المتغيرات في بايثون من أهم الأساسيات التي ستستخدمها في كل برنامج تقريبًا. فهي تساعدك على تخزين البيانات، إعادة استخدامها، تعديلها، وطباعتها داخل النصوص. وبمجرد أن تفهم المتغيرات جيدًا، يصبح فهم أنواع البيانات، العمليات الحسابية، الشروط، والدوال أسهل بكثير.

احرص على اختيار أسماء واضحة للمتغيرات، واستخدم snake_case عندما يتكون الاسم من أكثر من كلمة، ولا تنسَ أن بايثون حساسة لحالة الأحرف.

{alertSuccess} الخلاصة السريعة: المتغير هو اسم يخزن قيمة. اكتب اسمًا واضحًا، استخدم = للإسناد، واستعمل print و f-string لعرض القيم بسهولة.

إرسال تعليق

أحدث أقدم