داليتي سكول -

Daliaty School

   صفحة البيت  |

 

 

 

 

 

 

بايثون – פיתון – python

 

 

 

 

 

   المتغيرات –   variable    

 

 

في هذا الدرس سنقدّم مصطلحًا جديدًا: المتغيرات - variables.

 

تمعنوا في الكود التالي:

 

5286.4

2114.56

print(12 * 600 - 2000 + 12**3 / 20)

 

print((12 * 600 - 2000 + 12**3 / 20) / 2.5)

 

 

التمرين الثاني هو نفس التمرين الأول مقسوم على 2.5

هل توجد طريقة لحفظ نتيجة التمرين الأول، واستعماله في حل التمرين الثاني.

يتّضح أنه يمكن القيام بذلك بواسطة المتغيرات.

سيكون الحل هكذا. 

 

5286.4

2114.56

x = 12 * 600 - 2000 + 12**3 / 20

print(x)

print(x / 2.5)

 

لا داع للقلق، سوف نشرح هذا لاحقاً.

 

 

 

 

 

تعريف المتغيرات

 

·       المتغيرات هي عبارة عن أماكن (أو مواقع) في ذاكرة الحاسب يتم حجزها لتخزين قيم فيها، 
(بشكل مؤقت)، ويمكن العودة إليها واسترجاعها وتغييرها وقتما نشاء (اثناء تنفيذ البرنامج).

·       المتغيرات لها أسماء، ويتم الوصول إليها (الرجوع إلى القيمة المخزنة بها) من خلال أسمائها.

 

  أسم المتغير هو عنوان لموقع أو مكان التخزين في الذاكرة.  

 

 

أن هذا الفصل ما بين اسم المتغير ومحتواه يتيح استخدام الاسم بمعزل عن القيمة التي يمثلها.

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

السبب في تسمية المتغير بهذا الاسم، لأن المبرمج يستطيع تغيير قيمته في أية لحظة كما يشاء.

 

من خصائص المتغير:

 

·       تختلف المتغيرات باختلاف ما تحمله من معلومات مخزنة بها. فمثلا هناك متغيرات للأرقام تختلف عن متغيرات النصوص وهكذا.

·       لا حاجة لتحديد نوع البيانات التي سوف تخرن في المتغير.

نوع البيانات يتقرر خلال إعطاء قيمة للمتغير.

في بايثون يُسمح للمتغير الواحد بحفظ كل أنواع القيم التي تدعمها اللغة.

·       كل نوع بيانات له طريقة تخزين خاصة في الذاكرة (بهدف توفير مساحة أكبر من الذاكرة). 

·       كل البيانات المخزنة في المتغيرات (الذاكرة) يحدد بايثون حجم المساحة التخزينية المحجوزة بها ونوع الحيز (نمط المتغير) الذي سيحجز في الذاكرة.

 

---------------------------------------

 

على المبرمج، أن يعطي المتغير اسما يدل على وظيفته في البرنامج ليسهل عليه فهمه وتذكره.

مثال: يمكن تسمية متغير بالاسم grade إذا كان سيستخدم ليحفظ في الذاكرة، العلامة التي حصل عليها الطالب في الامتحان.

 

 

 

شروط تسمية المتغيرات:

 

ما هي الأسماء التي يمكن إعطاؤها للمتغيرات؟

اتضح أن ليس كل اسم قانوني. هناك قواعد تحدد ما هو قانوني وما هو غير قانوني،

 

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

-         يجب أن يبدأ اسم المتغير بحرف أو العلامة (_) ولا يسمح أن يبدأ برقم.

-         يجب ألا يحتوي على نقطة أو فراغ (مسافة) أو الرموز والعلامات الخاصة مثل (+, - , /, *, ^, ?)

-         غير مسموح استخدام الكلمات المحجوزة في لغة بايثون (مثل: if, while, for, in, …). 

-         لغة بايثون حساسة لحالة الأحرف (يوجد فرق بين age و- Age).

-         يفضل أن يعبر اسم المتغير عن محتواه.

 

في المتغيرات يمكن حفض اعداد صحيحة، أعداد عشرية ونصوص. وهناك المزيد سنره لاحقًا.

 

 

 

 

 

إسناد قيمة إلى المتغير (פעולת השמה)

 

عملية حفظ (أو تخزين) قيمة في المتغير تتم بواسطة الرمز = ونسميها "إسناد قيمة" (השמה).

دعونا نتناول بعض الأمثلة.

 

 

مثال 1:

 

المخرج

 

10

17

x = 10

y = 7

print(x)

print(x + y)

(1)

(2)

(3)

(4)

 

 

سنشرح كل سطر:

(1)  عرفنا المتغير x، وحفظنا به القيمة 10

(2)  عرفنا المتغير y، وحفظنا به القيمة 7

يتم حفظ القيم في المتغيرات باستخدام العامل يساوي (=).

كل ما يمكن القيام به مع القيمتين 10 و7، يمكن أيضًا القيام به مع المتغيرين x و y،

اللذين يمثلانهما الآن.

(3)  قمنا بطباعة x.

يتجه بايثون إلى ذاكرة الحاسوب، يستخرج قيمة x، وهي بالطبع 10، ثم يطبع 10.

(4)  قمنا بطباعة x + y

يتجه بايثون إلى الذاكرة، يستخرج x، يستخرج y، يقوم بعملية جمعهما، ويطبع النتيجة، 17.

 

 

 

 

 

مثال 2:

 

المخرج:

 

40

0.7     # (7 / 10 = 0.7)

13

27

x = 10

y = 7

print(x + x + x + x)

print(y / x)

print(x + 3)

print(x * 2 + y)

(1)

(2)

(3)

(4)

(5)

(6)

 

سنشرح كل سطر:

 

(1)      عرفنا المتغير x، وحفظنا به القيمة 10

(2)      عرفنا المتغير y، وحفظنا به القيمة 7

(3)      هنا نطبع x مجموع مع نفسه أربع مرات، والنتيجة هي 40،

(4)      قمنا بحساب مقدار y/x. 

يتجه بايثون إلى الذاكرة، يستخرج قيم y و x المخزنة هناك، وينفّذ الحساب y/x.

(5)      في نفس التعبير يمكن دمج متغيرات وقيم غير مخزنة في متغيرات.

مثال، قمنا بطباعة x+3.

3 هي قيمة غير مخزنة في متغير، على عكس x 

والنتيجة هي 13=3+10

(6)      قمنا بحساب وطباعة نتيجة التمرين x*2+y

النتيجة هي 27.

 

 

 

مثال 3:

جد ما الذي سوف يطبع، نتيجة للكود التالي: 

 

المخرج:

لقد تلقينا خطأ القسمة على 0،

لأن y يساوي 5، لذلك في الواقع قسمنا x على صفر.

ZeroDivisionError: division by zero

x = 20

y = 5

print(x / (y-5))

 

 

 

 

 

مثال 4:

المتغيرات هي اسم على مسمى، من الممكن تغيير قيمتها أثناء تنفيذ البرنامج.

 

المخرج

 

11

10

x = 3

x = 11

print(x)

print(x - 1)

(1)

(2)

(3)

(4)

 

نشرح كل سطر:

(1)      عرفنا المتغير x، وحفظنا به القيمة 3

(2)      عرفنا المتغير x، مرة أخرى، وحفظنا به القيمة 11

الآن القيمة المخزنة في المتغير x لم تعد 3، بل 11.

(3)      طبعنا قيمة x، وحصلنا على 11

من الآن فصاعدًا، قيمة x ستكون 11 حتى نغيرها مرة أخرى.

(4)      طبعنا قيمة x – 1 وحصلنا على 10

 

 

 

 

من خصائص المتغير:

·       في وقت محدد، يمكن أن يكون للمتغير قيمة واحدة فقط.

·        إذا أخذ المتغير قيمة جديدة (مثلاً عن طريق التعويض، اسناد قيمة بواسطة =)،
عندها ستحذف
القيمة السابقة ومكانها تحفظ القيمة الجديدة.

 

مثال 5:

 

شرح

المخرج

الكود البرمجي

المتغير num أخذ القيمة 8

المتغير num أخذ القيمة 7.5، وتم حذف القيمة السابقة 8

 

 

7.5

num = 8

num = 7.5

print (num)

 

 

 

 

 

 

 

أسناد قيمة في متغير نتيجة لإجراء حسابات

 

الأوامر التي من خلالها يتم إدراج قيم في المتغيرات تسمى أوامر تعيين أو إسناد قيمة،

(השמה، Assignment). وتتم بواسطة =

كما رأينا، هذه الأوامر لا تطبع أي شيء ولكن فقط تغير من قيمة متغير موجود.

 

المتغير يستطيع أن يأخذ قيمة نتيجة لعملية حسابية

سنرى كيف تؤدي = إلى إجراء حسابات.

 

 

 

 

مثال 6

 

شرح

المخرج

الكود البرمجي

عرفنا المتغير num وحفظنا به القيمة 10 التي هي نتيجة التمرين 4+2*3

 

10

num = 4 + 2 * 3

print (num)

 

 

 

 

 

مثال 7

 

المخرج:

 

 

10

x = 3

y = 7

result = x + y

print(result)

(1)

(2)

(3)

(4)

 

نشرح كل سطر:

 

(1)      عرفنا المتغير x، وحفظنا به القيمة 3

(2)      عرفنا المتغير y، وحفظنا به القيمة 7

(3)      عرّفنا متغيرًا جديد، اسمه result، وأسندنا له x + y.

   أولاً، يتم حساب الجانب على يمين علامة يساوي،

   وفقط بعد ذلك يتم حفظ هذه القيمة في متغير result

    (  )

   قيمة متغير result هي مجموع x وy، أي، 10.

 

 

 

 

 

مثال 8

يمكن تغيير قيمة متغير وفقًا لقيمته الحالية،

مثلاُ نكبر قيمة متغير الحالية بـــ 1                     

 

 

نوضح:

     result ==> 10

     result ==> 10+1 = 11

المخرج:

11

x = 3

y = 7

result = x + y

result = result + 1

print(result)

(1)

(2)

(3)

(4)

(5)

 

 

نشرح كل سطر:

 

(1)            عرفنا المتغير x، وحفظنا به القيمة 3

(2)            عرفنا المتغير y، وحفظنا به القيمة 7

(3)            عرّفنا متغيرًا جديد، اسمه result، وأسندنا له x + y.

      قيمة متغير result هي 10.

(4)            هنا قمنا بتغيير قيمة result إلى result + 1.

أي أن بايثون يقرأ من الذاكرة قيمة result، يضيف لها 1،

ويعيد حفظ هذه النتيجة داخل المتغير result.

القيمة الجديدة تدهس (דורס) القيمة السابقة.

(5)            يطبع 11

 

 

 

 

 

مثال 9

هذه المرة سوف نستبدل ونتجاوز عن قيمة x بقيمة result.

 

نوضح:

 

result ==> 7 + 3 = 10

result ==> 10 + 1 = 11

x = 11

المخرج:

11

11

x = 3

y = 7

result = x + y

result = result + 1

x = result

print(x)

print(result)

(1)

(2)

(3)

(4)

(5)

(6)

(7)

 

المتغيران x وresult - يحتويان على نفس القيمة، وهي 11

 

 

 

 

 

 

 

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

 

 

يمكن عمل إسناد متعدد (השמה מרובה) للمتغيرات:

 

معطى الكود التالي:

 

num1 = 10

num2 = 6.5

name = "Aya"

 

هذا الكود يمكن كتابته بشكل آخر هكذا: 

 

num1, num2, name = 10, 6.5, " Aya "

 

 هذان الكودان متطابقان ويقومان بنفس المهمة.

 

 

 

تمرين

يوجد في لغة بايثون طرق مختلفة لتغيير قيم المتغيرات. جد المخرج.

 

المخرج

الكود

 

17   17   17

num = age = total = 17

print(num, age, total)

 

 

5   4   7.5

a, b, c = 4, 7.5, 5

print(c, a, b)

 

 

 

 

  

 

 

طرق مختصرة لعملية الإسناد:

   

 

الطريقة المختصرة

الطريقة المطولة

a += b

a -= b

a *= b

a /= b

a %= b

a //= b

a **= b

a = a + b

a = a - b

a = a * b

a = a / b

a = a % b

a = a // b

a = a ** b

 

 

 

 

 

 

معلومات هامة عن المتغير في بايثون: 

 

·       لا يوجد اعلان عن المتغير (كما في باقي اللغات).

·       التعريف يتم من خلال أمر الإسناد (التعويض) =

·       نوع المتغير وقيمته تتحدد بموجب القيمة الأخيرة المدخلة.

لذلك، النوع يتغير بشكل ديناميكي (هذه أنماط ديناميكية).

 

 

 

 

 

   

 

 

 

   

 

 

 

Daliaty School – Copywrite  2023

wahbem@gmail.com | https://daliaty.com

 

 

 

 

 

<meta name="viewport" content="width=device-width, initial-scale=1">