في لغة بايثون (Python)، المتغيرات (Variables) هي مكان في الذاكرة يستخدم لتخزين القيم المختلفة مثل الأرقام والسلاسل والقوائم والقواميس وغيرها من البيانات. ويمكن استخدام المتغيرات في البرمجة لتحديد القيم التي يتم التلاعب بها، والقيام بعمليات عليها، وتخزين النتائج.
في بايثون، يتم إنشاء المتغيرات بتحديد اسم المتغير، ثم مساواته إلى القيمة التي تريد تخزينها في المتغير، مثل هذا:
x = 5
وفي هذه الحالة، تم إنشاء متغير اسمه “x” وتم تخزين القيمة 5 فيه. وبعد ذلك، يمكن استخدام المتغير في العديد من العمليات الأخرى، مثل الجمع والطرح والقسمة والضرب والتحويل والمزيد.
يمكن تغيير قيمة المتغير في أي وقت، مما يجعلها مفيدة في البرمجة، على سبيل المثال:
a, b, c = 1, 2, 3
وفي هذه الحالة، تم تغيير قيمة المتغير “x” من 5 إلى 10.
x = 5 # متغير صحيح y = 3.14 # متغير عشري
ويتم إنشاء المتغيرات في بايثون بشكل تلقائي عندما يتم تعيينها قيمة لأول مرة، ولا يلزم تعريف نوع المتغير مسبقاً، حيث يتم تحديد نوع المتغير تلقائياً عندما يتم تعيين القيمة.
تبع لغة بايثون قواعد صارمة في تسمية المتغيرات. هذه هي القواعد الأساسية لتسمية المتغيرات في بايثون:
1- يجب أن تتكون أسماء المتغيرات من أحرف (A-Z ، a-z) وأرقام (0-9) وشرطات سفلية (_) فقط.
2- يجب أن تبدأ أسماء المتغيرات بحرف (A-Z أو a-z) أو شرطة سفلية (_) ولا يجوز أن تبدأ برقم.
3- يجب عدم استخدام الكلمات المحجوزة في بايثون (مثل if و while و for و True و False وغيرها) كأسماء للمتغيرات.
4- يجب تجنب استخدام المسافات في أسماء المتغيرات واستخدام الحروف الكبيرة للإشارة إلى كلمة جديدة في الاسم.
5- يجب تجنب استخدام الرموز الخاصة مثل @ ، # ، $ ،% في أسماء المتغيرات.
6- يجب أن يكون اسم المتغير واضحًا وصريحًا ويصف بدقة المعلومات التي يتم تخزينها فيه.
بعض الأمثلة لتوضيح هذه القواعد:
x = 5 # اسم المتغير x هو صالح وواضح ويصف بدقة القيمة التي يحتوي عليها y_1 = "Hello" # اسم المتغير y_1 يستخدم الشرطة السفلية ويحتوي على رقم وهو واضح وصريح this_is_a_long_variable_name = "Long name" # اسم المتغير this_is_a_long_variable_name واضح ويصف بدقة المعلومات التي يحتوي عليها
من المهم اتباع هذه القواعد لتجنب الأخطاء وتحسين قراءة وصيانة الشفرة.
مثال شامل يوضح تطبيق قواعد تسمية المتغيرات في بايثون
age = 25 name = "John Doe" is_student = True hourly_rate = 10.5 # تعريف متغيرات غير صالحة وغير مفهومة a = 10 # اسم المتغير غير واضح age2 = "Twenty five" # يجب أن يكون الاسم واضحاً ولا يحتوي على أي معلومات خاطئة is-employee = False # يستخدم رمز خاص في اسم المتغير 3x = 30 # يبدأ الاسم برقم غير صالح my name = "Sarah" # يحتوي الاسم على مسافات # إعطاء اسماء صالحة ومفهومة للمتغيرات user_name = "johndoe" is_employed = True hourly_wage = 15.5
في هذا المثال، تم استخدام أسماء المتغيرات المفهومة والصالحة لضمان سهولة القراءة والصيانة في المستقبل. وتم تجنب استخدام الأسماء غير المفهومة والغير صالحة لضمان عدم وجود أخطاء في الشفرة.
وهاكم نتيجة تنفيذ الكود السابق :
توجد عدة تقنيات مستخدمة في تسمية المتغيرات متعددة الكلمات في بايثون، ومن أهمها:
1- Snake Case: يتم استخدام الشرطة السفلية (_) لفصل الكلمات في اسم المتغير. على سبيل المثال:
تقنية Snake Case في تسمية المتغيرات في بايثون تستخدم لتسمية المتغيرات والدوال والكائنات والكلاسات والوحدات. وهي تقنية تسمية تستخدم شرطة سفلية (_) لفصل الكلمات في اسم المتغير. تستخدم هذه التقنية عادة في بايثون وغالبًا ما تستخدم لتسمية متغيرات الأشياء التي تحتوي على أكثر من كلمة ويتم فصل هذه الكلمات بشرطة سفلية.
على سبيل المثال، إذا كنت تريد إنشاء متغير يحتوي على اسم الشخص الذي يستخدم التطبيق الخاص بك في بايثون ، فقد تستخدم Snake Case لتسمية المتغير على النحو التالي:
first_name = "John" last_name = "Doe"
x = input("Enter a value for x: ") # تعريف متغير x وتحديده بقيمة يحددها المستخدم
2-Pascal Case هي تقنية تسمية للاسماء في البرمجة تستخدم لتسمية المتغيرات والدوال والكائنات والكلاسات والوحدات. تختلف Pascal Case عن Camel Case بأن الحرف الأول في كل كلمة يتم تحريكه إلى الأعلى بدلاً من إبقائه على نفس المستوى. وعادة ما يستخدم Pascal Case في لغات البرمجة التي تدعم الـ OOP (Object-Oriented Programming) وللأسماء التي تمثل أسماء الكائنات أو الكلاسات.
على سبيل المثال، إذا كنت تريد إنشاء كلاس في بايثون يسمى “Person” ، فستكون التسمية بـ Pascal Case كما يلي:
class Person: def __init__(self, name, age): self.name = name self.age = age
يمكن ملاحظة أن الأحرف الأولى في الكلمات “Person” تم تحريكها إلى الأعلى في التسمية يعني حرف كبير كابتل
3- Kebab Case: يستخدم هذا النمط في بعض اللغات الأخرى، ويتم استخدام الشرطة (-) لفصل الكلمات في اسم المتغير. على سبيل المثال:
first-name = "John" last-name = "Doe"
لا يستخدم بشكل شائع في بايثون
في بايثون، هناك عدة أنواع من المتغيرات التي يمكن استخدامها في البرمجة، ومن بينها:
1- المتغيرات العددية (Numeric Variables): وتشمل هذه المتغيرات الأرقام الصحيحة والأعداد العشرية. مثال على ذلك:
2-المتغيرات النصية (String Variables): وتستخدم لتخزين النصوص والكلمات والجمل في البرنامج. مثال على ذلك:
name = "Ahmed" # متغير نصي
3- المتغيرات القوائم (List Variables): وتستخدم لتخزين مجموعة من العناصر في البرنامج. مثال على ذلك:
numbers = [1, 2, 3, 4, 5] # متغير قائمة
person = {"name": "Ahmed", "age": 30, "city": "Cairo"} # متغير قاموس
5- المتغيرات الحقيقية (Boolean Variables): وتستخدم لتخزين القيم الحقيقية (True) أو القيم الخاطئة (False) في البرنامج. مثال على ذلك:
is_active = True # متغير حقيقي
ويمكن للمستخدم إنشاء المزيد من أنواع المتغيرات بناءً على الحاجة في البرنامج.
بالإضافة إلى الأنواع الأساسية للمتغيرات التي ذكرتها سابقًا، هناك أنواع أخرى من المتغيرات في بايثون، وهي:
6- المتغيرات القابلة للتعديل (Mutable Variables): وتشمل هذه المتغيرات القوائم والقواميس، وهي تتيح للمستخدم إضافة وتعديل وحذف العناصر داخلها. مثال على ذلك:
numbers = [1, 2, 3, 4, 5] # متغير قائمة numbers.append(6) # إضافة عنصر جديد إلى المتغير قائمة
7- المتغيرات غير القابلة للتعديل (Immutable Variables): وتشمل هذه المتغيرات المتغيرات العددية والنصية، وهي لا يمكن تغيير قيمتها بعد إنشائها. مثال على ذلك:
x = 5 # متغير صحيح غير قابل للتعديل
8- المتغيرات العالمية (Global Variables): وهي المتغيرات التي تم تعريفها خارج الدالة ويمكن الوصول إليها داخل وخارج الدالة. مثال على ذلك:
x = 5 # متغير عالمي def my_function(): print(x) # يمكن الوصول إلى المتغير عالمي داخل الدالة my_function()
9- المتغيرات المحلية (Local Variables): وهي المتغيرات التي تم تعريفها داخل الدالة ويمكن الوصول إليها فقط داخل الدالة. مثال على ذلك:
def my_function(): y = 3 # متغير محلي print(y)
10- المتغيرات الثابتة (Constants Variables): وهي المتغيرات التي لا يمكن تغيير قيمتها طوال فترة تنفيذ البرنامج، وعادة ما تكون بأحرف كبيرة للتمييز عن المتغيرات العادية. مثال على ذلك:
PI = 3.14 # متغير ثابت
11-المتغيرات التي يتم إنشاؤها تلقائيًا من قبل بايثون، وتحمل قيم خاصة بالتطبيق أو الحدث المعين. وهناك مجموعة متنوعة من هذه المتغيرات، مثل:
__name__
: يحتوي على اسم الملف الذي يتم تنفيذه.__doc__
: يحتوي على وثائق الشفرة المضمنة داخل الكود.__file__
: يحتوي على المسار الكامل للملف الذي يتم تنفيذه.__builtins__
: يحتوي على مجموعة من الدوال الأساسية المتوفرة في بايثون.__package__
: يحتوي على اسم الحزمة التي ينتمي إليها الملف الذي يتم تنفيذه.12- المتغيرات التعريفية (Defining Variables): وهي المتغيرات التي يتم تعريفها من خلال البرمجة الموجهة بالكائنات (OOP)، وتسمح للمستخدم بتخزين القيم في الكائنات. مثال على ذلك:
class MyClass: x = 5 # تعريف متغير تعريفي داخل الكلاس p1 = MyClass() # إنشاء كائن من الكلاس print(p1.x) # إظهار قيمة المتغير التعريفي داخل الكائن
13- المتغيرات الخارجية (External Variables): وهي المتغيرات التي يتم استيرادها من ملفات أخرى، وتسمح للمستخدم بتبادل البيانات بين الملفات المختلفة. مثال على ذلك:
في ملف my_module.py
:
x = 5 # تعريف متغير خارجي
في ملف آخر main.py
:
import my_module # استيراد الملف print(my_module.x) # إظهار قيمة المتغير الخارجي المستورد
14- المتغيرات العالمية (Global Variables): وهي المتغيرات التي يمكن الوصول إليها واستخدامها في أي جزء من البرنامج، حيث يتم تعريفها خارج الدوال والكائنات والأساليب، وتكون متاحة لجميع الدوال والكائنات والأساليب. مثال على ذلك:
x = 5 # تعريف متغير عالمي def my_function(): print(x) # استخدام المتغير العالمي داخل الدالة my_function() # إظهار قيمة المتغير العالمي
16- المتغيرات الخاصة بالدوال (Function Variables): وهي المتغيرات التي يتم تمريرها إلى الدوال والكائنات والأساليب عند استدعائها، وتستخدم لتخزين القيم المؤقتة التي يتم استخدامها في الدالة أو الكائن أو الأسلوب. مثال على ذلك:
def my_function(x): print(x) # استخدام المتغير الخاص بالدالة داخل الدالة my_function(5) # إظهار قيمة المتغير الخاص بالدالة
17- المتغيرات الثابتة (Constants Variables): وهي المتغيرات التي لا يتم تغيير قيمتها طوال تشغيل البرنامج، حيث يتم تعريفها بقيم ثابتة وثابتة القيمة خلال تشغيل البرنامج. ولا يمكن إعادة تعريفها أو تغيير قيمتها خلال التشغيل
هناك ثلاث طرق لتعريف المتغيرات في بايثون:
1- تعريف المتغير بقيمة افتراضية: يتم تعريف المتغير وتحديده بقيمة افتراضية عند إنشاء المتغير. مثال:
x = 5 # تعريف متغير x وتحديد قيمته إلى 5