السبت، 16 أبريل 2011

المتغيرات في بايثون Variables in Python

بعد موضوعنا السابق عن العمليات الحسابية في بايثون  أستطيع ان ادعي انك حتى هذه اللحظة معي على الخط لكن موضوع المتغيرات موضوع يستحق بعض الشرح للمعنى والمفهوم خاصة وان الكلمة في حد ذاتها ذات طبيعة غامضة الى حد ما

قبل شرح المتغيرات دعني اعرض عليك مشكلة ما
هل تتعامل مع اليو تيوب؟؟؟ هل تعلم هذا الرقم الذي يمثل عدد مرات المشاهدة
دعني اخبرك ان هذا الرقم يقوم بالتغير من رقم لاخر بناء على مرات المشاهدة...
ماذا تقول؟؟؟ ان هذا واضح كالشمس؟؟!!!
اسف جدا
قصدت ان اخبرك انه يتم تغيره برمجيا وليس يدويا
كل مرة مشاهده يتم اضافة واحد للرقم
ولكن دعنا نتخيل
هذا الشخص المجهول الذي قام ببرمجة هذا الجزء من اليوتيوب
ترى ماذا كتب؟؟؟
عندما اخبر الكمبيوتر بشكل ما عن ان هذا المكان بالذات يجب ان يعرض رقما وهذا الرقم يزداد واحدا في كل مرة مشاهدة؟؟؟

انه لا يستطيع ان يقول للكمبيوتر اعرض رقم صفر صراحة
لماذا ؟؟
لانك حينها في كل مرة تقوم بفتح اليوتيوب ستجد الرقم صفر
ولكنه عندها يلجأ لحل اخر
هو انه يقوم بانشاء مخزن ما
مكان ما في جهاز الكمبيوتر يقوم بوضع رقم صفر فيه
ثم يقول للكمبيوتر اعرف الرقم الموجود في هذا المخزن
لماذا؟؟؟
لان الجهاز في هذه الحالة سيعرض الرقم بغض النظر هل هو صفر ام رقم اخر

وحين يتم مشاهدة الصفحة
يقوم المبرمج باضافة واحد لهذا المخزن
في هذه الحالة سيعرض الجهاز الرقم الجديد
وهكذا
هذا المخزن نسميه في عالم البرمجه المتغيرات او ال Variables
دعنا الان نتكلم قليلا عن طريقة معالجة المتغيرات في بايثون
ولكن انصحك بالارتخاء قليلا وصنع مشروبك المفضل اولا ثم العودة لنا فنحن ننتظرك


مرحبا بك من جديد
الان دعني اخبرك سريعا عن فوبيا المتغيرات لدى المبرمجين
فكل مبرمج لديه فوبيا خاصة من المتغيرات تتعلق بنوع المتغير
قديما كانوا يخبروننا اننا يجب ان نحدد نوع المتغير سلفا
فالمخزن الذي يحمل اعدادا صحيحة غير المخزن الذي يحمل اعدادا كسرية غير المخازن النصية وهكذا
لديهم وجهه نظر مقنعة اليس كذلك؟؟؟
كنا مقتنعين آن ذاك ايضا
ولكن دعني ابشرك انك سواء كنت مبرمج قديم او مبتدئ فلن تواجهه هذه الفوبيا مجددا

ببساطة كل ما عليك هو ان تسمي متغيرك
هذا منطقي الى حد ما
على الاقل حتى تعرف اين تضع ماذا

لنبداء بهذا المثال

>>> x=5

هكذا
فقط
لا شيء اخر

اذن كيف تستخدمه؟؟؟
ببساطة هكذا

>>> x
5

نعم
لقد انشأت متغير ووضعت فيه قيمة في خطوة واحده وكل ما عليك هو استدعاءه بعد ذلك

دعنا نقوم ببع العمليات لتتضح الرؤية


>>> x+1
6
>>> x+2
7
>>> y=x+2
>>> y
7
>>> x+y
12
>>> x-y
-2
>>> y-x
2
>>> x*y
35
>>> x**y
78125
>>> x/y
0
>>> y/x
1
>>> y=x+0.0
>>> y/x
1.0
>>> y=x+3.0
>>> y/x
1.6
>>> y%x
3.0
>>> 


هكذا ببساطة
اذن ماذا لو قررت فجأة تغير نوع المتغير
مثلا
تقوم بتحويله لمتغير نصي كما قمنا بتحوليه لمتغير كسري

>>> y="Python is my language"
>>> y
'Python is my language'

الى الان والموضوع الى حد ما سهل

لكن هل يمكن للمبرمج ان يكون لا يعلم مسبقا القيمة التي ستكون في المتغير؟؟
مثلا هل يمكن ان يقوم بسؤال المستخدم عن رقم ما ويقوم بمضاعفته مثلا؟؟؟

يمكن فعل ذلك بالطبع
وهنا نتحدث عن دالة في بايثون- ان كنت منزعج من كلمة داله عليك تجاهلها مؤقتا حتى نقوم بشرحها بشكل تفصيلي- اسمها input

>>> x= input()
3
>>> x
3

يمكننا اضافة رسالة نصية للمستخدم  بالشكل التالي

>>> x= input("Enter your age here: ")
Enter your age here: 30
>>> x
30

هكذا يمكننا التعامل مع المتغيرات بشكل يسمح بتسميتها متغيرات فعلا

هناك بعض القواعد في تسمية المتغيرات عليك ان تعرفها جيدا

بايثون كما قلنا سابقا لغة حساسة لحالة الاحرف
فحرف A يختلف عن حرف a
ولهذا حين تسمي متغير ما X فلا تتوقع ان يمكنك استدعاءه عن طريق حرف x

ثانيا يمكن للمتغير ان يتكون من اكثر من حرف
مثلا
count
age
isCurrentYear

يمكن للمتغير ان يبدا بحرف سرطة سفلية
مثلا
_count 
_age 
_isCurrentYear
يمكن ان يحتوي اسم المتغير على ارقام ولكن لايمكن ان يبداء برقم 
مثلا
student1
class32nd

لكن لا يمكن ان يكون كالاتي
1student 
32ndClass

بالطبع هناك بعض المماراسات الجيدة لكتابة كود سليم تتعلق بتسمية المتغيرات 
ولكن ليس هنا مكانها 
عليك ان تعلم - بشكل مبدئي فقط- ان المتغيرات من الجيد تسميتها بدون ارقام
وان تبداء بحرف صغير 
وان تكون ذات معنى لما سوف تحمله فعلا
وان كانت تحتوي على اكثر من كلمة مثل isCurrentYear فعليك اتباع هذه الطريقة في الاحرف الكبيرة والصغيرة
حيث الحرف الاول صغير وكل حرف يمثل بداية كلمة جديدة يكون كبيرا

مرة اخرى هذة ليست قيود ولكنا من المماراسات الجيدة حتى يتسنى لك ولغيرك قراءة هذا الكود بسهوله ومعرفة ما يمثله هذا المتغير 

سوف نقوم بذكر هذه المماراسات خلال دروسنا وان سمح الوقت سنضع لها درس مستقل ان شاء الله
اراكم على خير








ليست هناك تعليقات:

إرسال تعليق