بعد أن تعرّفنا في الدّرس السّابق على طريقة تنصيب بايثون وكيفيّة العمل معها، سنكمل في هذا الدّرس مشوار تعلّم هذه اللغة بتعلّم كيفيّة التّعامل مع البيانات مثل المُتغيّرات وأنواعها كالأرقام وإسناد القيم. ولكن قبل ذلك عليك أن تتعرّف على طريقة دعم اللغة العربيّة، ويجب عليك أن تفهم بعض المُصطلحات المتداولة في مجال البرمجة (والتّي اعتَمدتُ عليها في هذا الدّرس).
تذكير: نقوم بتنفيذ الأسطر البرمجيّة مُباشرة من مُفسّر بايثون، لمزيد من المعلومات عن المُفسّر راجع الدّرس السّابق. وللتوسع في لغة بايثون وتعلمها أكاديميًا، ننصحك بالانضمام إلى دورة تطوير تطبيقات باستخدام لغة بايثون التي تقدمها أكاديمية حسوب.
دعم اللغة العربية في بايثون
قد تواجه خطأ إذا حاولت تنفيذ أمر طباعة جملة "مرحبا بالعالم" مُستخدما حروفا عربية، لذلك يجب عليك أن تكتب السّطر التّالي، قبل كتابة أي أمر يحتوي على كلمات عربية:
# -*- coding: utf-8 -*-
المصطلحات
مخرج Output: تعني الجواب أو النّتيجة الذي يُقدّمها مُفسّر بايثون، فمثلا إذا طلبت من مُفسّر بايثون طباعة كلمة Hello، فستستخدم السّطر التّالي:
>>> print "Hello" Hello
هنا نُسمّي Hello المُخرج الذي يُرجعه البرنامج (أي نتيجة الأمر).
مُتغيّر: وهو الاسم الذي نُطلقه على حرف أو “كلمة” تحمل قيمة مُعيّنة، مثلا:
>>> name = "abdelhadi"
هنا قُمنا بإنشاء مُتغيّر name وأسندنا له القيمة abdelhadi.
وإذا أردنا إظهار القيمة abdelhadi فيكفي أن نكتب اسم المُتغيّر في مُفسّر بايثون:
>>> print name
كما يُمكن أن نضيف تحّية على الشّكل التّالي:
>>> print "Hello " + name
تُفسّر الشيفرة أعلاه وتكون مُخرجاتها:
Hello Abdelhadi
يُمكن أن يحمل المُتغيّر عدّة أنواع من القيم، كالأرقام والنّصوص والأحرف…
تعيين القيم
يُعتبر تعيين قيمة لاسم معيّن من أهمّ أساسيّات البرمجة، وهذا الاسم معروف في البرمجة بالمُتغيّر، وإليك مثالا على ذلك:
>>> x = 4 >>> x * x 16
قمنا في المثال أعلاه بوضع القيمة 4 للمتغيّر x، بعبارة أخرى المُتغيّر x يحمل القيمة 4. بحيث يُمكننا استعمال x عوضا عن 4 في باقي الأسطر في برنامجنا. وبعدها قمنا بالعمليّة الحسابيّة x * x أي 4 * 4 وحصلنا على 16 كنتيجة.
إذا حاولت أن تستخدم مُتغيّرًا لم يُعرّف من قبل في برنامجك، فستحصل على خطأ كالتّالي:
>>> foo Traceback (most recent call last): File "<stdin>", line 1, in ? NameError: name 'foo' is not defined >>> foo = 4 >>> foo 4
حاولنا أعلاه أن نقوم باستخدام المُتغيّر foo الذي لم نعرّفه أساساً، فحصلنا على رسالة من مُفسّر بايثون مفادها بأنّ المُتغيّر foo ليس موجودا. وبعد تعريفه وتعيين القيمة "4" له أصبح بإمكاننا استدعاؤه بدون أي مشكلة.
إذا وضعت قيمة مُغايرة لمتغيّر يحمل مُسبقاً قيمة ما، فالقيمة القديمة تُستَبدَل بالقيمة الجديدة، بحيث يحمل المتغيّر القيمة الجديدة.
>>> x = 4 >>> x 4 >>> x = 'hello' >>> x 'hello'
في المثال أعلاه، قمنا بتحديد القيمة "4" للمتغيّر x ثمّ بعد ذلك قمنا بتحديد "hello" لنفس المُتغيّر فأصبح x يحمل القيمة hello في نهاية المطاف.
ويُمكنك تعيين أكثر من قيمة لأكثر من مُتغيّر في آن واحد.
>>> a, b = 1, 2 >>> a 1 >>> b 2 >>> a + b 3
ومُبادلة قيمتي مُتغيّرين (بحيث يحمل المُتغيّر قيمة الآخر) سهل جدّا في لغة بايثون:
>>> a, b = 1, 2 >>> a, b = b, a >>> a 2 >>> b 1
عند تعيينِ قيمة في بايثون، تكون الأهميّة للجانب الأيمن قبل الأيسر، بحيث يقوم بايثون بالتّعرّف على القيّم في الجانب الأيمن ثمّ يقوم بتعيينها للمتغيّرات في الجانب الأيسر لعلامة = . إذ ما يقع على يسار علامة = هو المُتغير وما يقع على يمينها هو القيمة.
التعليقات
تُستعمل التّعليقات في البرمجة لشرح وظيفة سطر معين أو لإعطاء فكرة عن برنامجك لمن يقرأ شيفرته، وتكون التّعليقات مسبوقة بعلامة # إما في سطر مستقل أو في نفس سطر الشّيفرة، وتتميّز بأنّها لا تؤثّر على عمل البرنامج إذ يتجاهلها المُفسّر ولا تُنفّذ، وهي عموما اختيارية، لذا فأنت لست مُجبرا على كتابتها، وإليك مثالاً على التّعليقات:
>>> # السّطر التّالي عبارة عن تعيين قيمة لمتغيّر >>> x = 'hello' # هذا السّطر عبارة عن تعيين قيمة لمتغيّر
الأرقام
لقد تعرّفنا من قبل حول كيفيّة التّعامل مع الأرقام بشكل بسيط.
>>> 42 42 >>> 4 + 2 6
تدعم بايثون الأعداد العشريّة كذلك.
>>> 4.2 4.2 >>> 4.2 + 2.3 6.5
وتدعم العمليّات المُختلفة مثل الإضافة والفرق وغيرهما من العمليّات الحسابيّة:
- + إضافة
- - الفرق
- * الضّرب
- / القسمة
- ** الأس (القوة)
- % باقي القسمة
لنجرّب هذه العمليّات على الأعداد الصّحيحة:
# عمليّة إضافة >>> 7 + 2 9 # عمليّة فرق >>> 7 - 2 5 # عمليّة ضرب >>> 7 * 2 14 # عمليّة قسمة >>> 7 / 2 3 # الأس >>> 7 ** 2 49 # باقي القسمة >>> 7 % 2 1
إذا تمعّنت في النّظر ستجد أنّ ناتج قسمة 7 على 2 يُساوي 3 وليس 3.5 وهذا لأنّ الرّمز / يُرجع الأرقام الصحيحة فقط عندما يعمل معها، لننظر مالذي سيحدث إذا جرّبنا نفس الأمر لكن بأعداد عشريّة هذه المرّة:
>>> 7.0 / 2.0 3.5 >>> 7.0 / 2 3.5 >>> 7 / 2.0 3.5
يُمكن القيّام بالعمليّات الحسابيّة بالاعتماد على أكثر من عامل:
>>> 7 + 2 + 5 - 3 11 >>> 2 * 3 + 4 10
هذا مهمّ جدّا وذلك لفهم كيفيّة تعامل لغة بايثون مع العمليّات الحسابيّة، حيث هناك أولويّات للعمليّات وذلك كالقائمة التّالية، من الأقل أولويّة إلى الأه:
+ -
* /
% **
ولفهم ذلك أكثر، إليك هذا المثال: عند تنفيذ العمليّة 2 + 3 * 4 في بايثون فالعمليّة الأولى التّي تُنفّذ هي 3 * 4 ، لأن العامل * أكثر أولويّة من عامل +، وبعد ذلك تضاف القيمة إلى 2.
>>> 2 + 3 * 4 14
يُمكننا أن نعتمد على الأقواس () لتحديد أولويّات العمليّات، انظر المثال التّالي:
>>> (2 + 3) * 4 20
في المثال أعلاه، قمنا بوضع العمليّة 2+3 بين قوسين لإخبار مُفسّر بايثون بأنّ لهذه العملية الأولويّة ويجب حسابها أوّلا، فإن لم نقم بوضع القوسين لقام المُفسّر بحساب العمليّة 4*3 ثم إضافة العدد 2.
جميع العمليّات باستثناء ** يبدأ تطبيقها من اليسار ثمّ اليمين.
1 + 2 + 3 * 4 + 5 ↓ 3 + 3 * 4 + 5 ↓ 3 + 12 + 5 ↓ 15 + 5 ↓ 20
تمارين
تمرين 1
ما هي مُخرجات (القيّم التّي سيطبعها) البرنامج التّالي:
x = 4 y = x + 1 x = 2 print x, y
تمرين 2
ما هي مُخرجات (نتيجة) البرنامج التّالي:
x, y = 2, 6 x, y = y, x + 2 print x, y
تمرين 3
ما هي مُخرجات البرنامج التّالي:
a, b = 2, 3 c, b = a, c + 1 print a, b, c
ترجمة -وبتصرف- للكتاب Python Practice Book لصاحبه Anand Chitipothu.
أفضل التعليقات
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.