المتحولات البرمجية وهي من اهم العناصر البرمجية والتي تحتويها اي لغة برمجة في العالم مهما كانت صغيرة او كبيرة فكل برنامج مكتوب يتالف من مجموعة من المتغيرات تجتمع معا لتشكيل برنامج مفيد .
ماهي المتحولات البرمجية
المتحولات او بتسمية اخرى المتغيرات وهي حاويات تستخدم لتخزين البيانات داخلها واستخدمها في استرجاع البيانات المخزنة في الجزأ المناسب من الكود البرمجي بحسب رؤية المبرمج.
على عكس لغة الجافا او لغة c فإن لغة البايثون لاتعتمد على تعريف نوع المتحول قبل كتابته حيث يتم فهم نوع المتحول من خلال المفسر البرمجي الخاص بالبايثون من خلال سياق الكود البرمجي والبيانات المسندة للمتحول.
يتم إنشاء المتغير في اللحظة التي يسند لها المبرمج قيمة معينة.
مثال
x = 5
y = "John"
print(x)
print(y)
النتيجة للكود السابق
5
John
على عكس باقي اللغات لاداعي ابدا لتعريف نوع المتغير بل ويمكن تغير نوعه من خلال القيم المسندة غليه فمثلا تارة يكون نوع المتغير نصي وتارة رقمي .
مثال
x = 4 # x is of type int
x = "Sally" # x is now of type str
print(x)
نتيجة المثال
Sally
يمكن إسناد القيم النصية للمتحولات من خلال تضمينها ضمن اشارات التنصيص إما الفريدة ‘ ‘ او المزدوجة ” “
مثال
x = "John"
# is the same as
x = 'John'
نتيجة الكود البرمجي
John
John
تسمية المتحولات في البايثون
يمكن تسمية المتحولات باي اسم سواء قصير مثل x او طويل مثل cat_name مع اتباع قواعد التسمية في لغة البرمجة بايثون
قواعد تسمية المتحولات في بايثون
- حصرا يجب ان يبدأ اسم المتحول باحد الاحرف الابجدية الإنكليزية او اشارة _
- لايمكن ان يبدأ اسم المتحول ب رقم
- اسم المتحول يمكن فقط ان يحتوي الاحرف الانلكيزية بحالتها الكبيرة والصغيرة مع الارقام والرموز التالية فقط -_
- المتحولات في لغة البايثون حساسة لحالة الاحرف اي في حال كتبنا نفس اسم المتحول ولكن بحالتي احرف مختلفة مرة كبيرة ومرة صغيرة فان مفسر البرمجي للبايثون يعتبرها متحولان مستقلان
مثال: X تختلف عن x
تعيين القيم إلى متحولات مختلفة
لغة البايثون تتيح للمبرمج تعيين قيم عدة متحولات في سطر برمجي واحد
مثال
x, y, z = "Orange", "Banana", "Cherry"
print(x)
print(y)
print(z)
نتيجة الكود البرمجي السابق
Orange
Banana
Cherry
يمكن اسناد نفس القيمة لمتحولات مختلفة في نفس السطر
مثال
x = y = z = "Orange"
print(x)
print(y)
print(z)
نتيجة الكود البرمجي السابق
Orange
Orange
Orange
طباعة المتحولات في البايثون
لطباعة المتحولات نستخدم الكلمة المعرفة داخل اللغة print ولاسناد نصوص للمتحول نستخدم إشارة +
مثال
x = "awesome"
print("Python is " + x)
نتيجة الكود البرمجي السابق
Python is awesome
يمكن إضافة إشارة الجمع + لجمع متحولين من نوع نص سوية
مثال
x = "Python is "
y = "awesome"
z = x + y
print(z)
نتيجة الكود البرمجي السابق
Python is awesome
إذا حاولت عزيزي المبرمج ان تجمع متحول من نوع نص مع متحول من نوع رقم من خلال إشارة الجمع فستحصل على خطأ .
مثال يعطي خطأ
x = 5
y = "John"
print(x + y)
نتيجة الكود البرمجي السابق
TypeError: unsupported operand type(s) for +: 'int' and 'str'
المتحولات العامة في البايثون
المتحولات التي تكتب خارج الدوال البرمجية هي متحولات عامة يمكن استخدامها في جميع انحاء الكود البرمجي وفي الدوال ايضا .
مثال
#Global variable
x = "awesome"
def myfunc():
print("Python is " + x)
myfunc()
نتيجة الكود البرمجي السابق
Python is awesome
في حال قام المبرمج بتعريف نفس اسم المتحولات داخل الدالة وخارجه واسند قيم لها فان القيم المطبوعة عند استدعاء الدالة تختلف عن القيمة المطبوعة للمتحول العام الخارجي.
مثال
x = "awesome"
def myfunc():
x = "fantastic"
print("Python is " + x)
myfunc()
print("Python is " + x)
نتيجة الكود البرمجي السابق
Python is fantastic
Python is awesome
الكلمة المفتاحية global في بايثون
في حال قام المبرمج بكتابة الكلمة المفتاحية global قبل المتحول داخل الدالة فانه يصبح متحول عام يمكن استدعاءه في كل انحاء مجالات الكود
مثال
def myfunc():
global x
x = "fantastic"
myfunc()
print("Python is " + x)
نتيجة الكود البرمجي السابق
Python is fantastic
ايضا تسخدم الكلمة المفتاحية global في بايثون لتعديل قيمة المتحول العام المذكور خارج الدالة
مثال
x = "awesome"
def myfunc():
global x
x = "fantastic"
myfunc()
print("Python is " + x)
نتيجة الكود البرمجي السابق
Python is fantastic