المتغيرات المحلية والعامة - كتاب المهارات الرقمية - الصف 8 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب المهارات الرقمية - الصف 8 - الفصل 1 | المادة: المهارات الرقمية | المرحلة: الصف 8 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: المتغيرات المحلية والعامة

📚 معلومات الصفحة

الكتاب: كتاب المهارات الرقمية - الصف 8 - الفصل 1 | المادة: المهارات الرقمية | المرحلة: الصف 8 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

📝 ملخص الصفحة

📚 المتغيرات المحلية والعامة

المفاهيم الأساسية

نطاق المتغير: جزء المقطع البرمجي الذي يُمكن الوصول إلى المتغير واستخدامه.

المتغيرات المحلية (Local Variables): متغيرات نطاقها داخل الدالة حيث تم التصريح عنها، تبدأ من تعريف اسم الدالة، وتنتهي عند توقف الدالة عن التنفيذ.

المتغيرات العامة (Global Variables): متغيرات تُصرَّح عنها في المستوى الأعلى من جزء المقطع البرمجي (ليس ضمن نطاق معين مثل الدوال)، ويتم تعريفها باستخدام الكلمة `global`.

خريطة المفاهيم

```markmap

الدوال في بايثون

تعريف الدالة

الكلمة الأساسية `def`

اسم الدالة

النقطتان `:`

محتوى الدالة (Function Body)

#### المعاملات (Parameters)

##### تُحدد داخل الأقواس `()`

##### مفصولة بفاصلة

##### متغيرات محلية (Local Variables)

###### نطاق المتغير المحلي

####### داخل الدالة فقط

####### لا تؤثر في المتغيرات العامة بنفس الاسم

####### تبدأ وتنتهي مع تنفيذ الدالة

##### الوسائط الافتراضية (Default Arguments)

###### الغرض

####### جعل بعض المعاملات اختيارية

####### استخدام قيم افتراضية إذا لم يتم تمرير قيمة

###### طريقة التعيين

####### وضع عامل الإحالة `=` متبوعًا بالقيمة الافتراضية بعد تسمية المعاملات

####### مثال: `def helloFunction(message="مرحباً"):`

###### طريقة الاستخدام

####### استدعاء الدالة بدون وسائط: تُستخدم القيمة الافتراضية

####### استدعاء الدالة بقيمة مختلفة: يتم تجاوز القيمة الافتراضية

#### عبارة الإرجاع `return`

##### الغرض

###### إنهاء تنفيذ الدالة

###### إرجاع قيمة التعبير

##### قواعد الاستخدام

###### لا يمكن استخدامها خارج الدالة

###### في حال عدم إضافتها، لا تعيد الدالة أي شيء

##### الفرق بين `return` و `print`

###### `return`: يعطي قيمة أو ردًا لمستخدم الدالة

###### `print`: ينتج نصًا مطبوعًا على الشاشة

استدعاء الدالة

استخدام اسم الدالة متبوعًا بأقواس `()`

تمرير الوسائط (Arguments)

#### قيم تُمرر للمعاملات عند الاستدعاء

الميزة الرئيسية

إمكانية الاستدعاء مرارًا وتكرارًا

المتغيرات العامة (Global Variables)

نطاقها

#### في المستوى الأعلى من المقطع البرمجي

طريقة التصريح

#### استخدام الكلمة `global`

الغرض

#### تعيين قيمة لاسم محدد في المستوى الأعلى من جزء المقطع البرمجي

دوال جاهزة في بايثون

`print()`

`len()`

`range()`

`input()`

```

نقاط مهمة

  • المتغيرات المحلية داخل تعريف الدالة لا تؤثر ولا تتأثر بالمتغيرات الأخرى التي تحمل نفس الاسم خارج الدالة.
  • لتعديل متغير عام من داخل دالة، يجب استخدام الكلمة `global` للإعلان عنه داخل الدالة.
  • مثال الكود يوضح أن تغيير قيمة `x` داخل الدالة `func(x)` (إلى 2) لم يؤثر على قيمة `x` العامة (التي بقيت 50).

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

المتغيرات المحلية والعامة

نوع: محتوى تعليمي

المتغيرات المحلية والعامة

نوع: محتوى تعليمي

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

نوع: محتوى تعليمي

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

نوع: محتوى تعليمي

في الاستدعاء الأخير لدالة الطباعة، ستُطبع قيمة x في القسم الرئيس وتؤكد على أنها لم تتأثر.

نوع: محتوى تعليمي

x = 50 def func(x): print("x= ", x) x = 2 print("لقد غيرت x إلى", x) func(x) print("لا تزال x=", x)

نوع: محتوى تعليمي

x= 50 لقد غيرت x إلى 2 لا تزال x= 50

نوع: محتوى تعليمي

إذا كنت ترغب في تعيين قيمة لاسم محدد في المستوى الأعلى من جزء المقطع البرمجي (أي ليس ضمن نطاق معين مثل الدوال أو الفئات)، فأنت بحاجة إلى إخبار بايثون أن الاسم ليس محليًا (local) ولكنه عام (global). يتم ذلك باستخدام المتغيرات العامة (Global Variables).

نوع: METADATA

وزارة التعليم Ministry of Education 2025 - 1447 167

🔍 عناصر مرئية

A Python code snippet demonstrating the concept of local variables within a function. It defines a global variable 'x' with value 50, then a function 'func(x)' that prints the passed 'x', reassigns 'x' to 2 locally, and prints the new local 'x'. Finally, it calls 'func(x)' and prints the global 'x' again.

The output generated by the Python code example. It shows 'x= 50' (from the function's initial print), 'لقد غيرت x إلى 2' (from the function's local reassignment and print), and 'لا تزال x= 50' (from the global print after the function call, confirming the global variable was unaffected).

📄 النص الكامل للصفحة

--- SECTION: المتغيرات المحلية والعامة --- المتغيرات المحلية والعامة عند تحديد المتغيرات داخل تعريف الدالة، فإنها لا تؤثر ولا تتأثر بالمتغيرات الأخرى التي تحمل نفس الاسم والتي يتم استخدامها خارج تلك الدالة. يُسمى جزء المقطع البرمجي الذي يُمكن الوصول إلى المتغير واستخدامه بنطاق المتغير، المتغيرات المحلية (Local Variables) لنطاقها داخل الدالة حيث تم التصريح عنها، وتبدأ من تعريف اسم الدالة، وتنتهي عند توقف الدالة عن التنفيذ. في المثال التالي دالة استخدمت لأول مرة معامل يسمى x، يستخدم بايثون قيمة المعامل المعلن داخل تلك الدالة. ثم ستسند القيمة 2 إلى x، والاسم x هو متغير محلي لدالتك. لذلك، عندما تغيرت قيمة x في الدالة، فإن x المحددة في الجزء الرئيس لن تتأثر. في الاستدعاء الأخير لدالة الطباعة، ستُطبع قيمة x في القسم الرئيس وتؤكد على أنها لم تتأثر. x = 50 def func(x): print("x= ", x) x = 2 print("لقد غيرت x إلى", x) func(x) print("لا تزال x=", x) x= 50 لقد غيرت x إلى 2 لا تزال x= 50 إذا كنت ترغب في تعيين قيمة لاسم محدد في المستوى الأعلى من جزء المقطع البرمجي (أي ليس ضمن نطاق معين مثل الدوال أو الفئات)، فأنت بحاجة إلى إخبار بايثون أن الاسم ليس محليًا (local) ولكنه عام (global). يتم ذلك باستخدام المتغيرات العامة (Global Variables). وزارة التعليم Ministry of Education 2025 - 1447 167 --- VISUAL CONTEXT --- **CODE_BLOCK**: Untitled Description: A Python code snippet demonstrating the concept of local variables within a function. It defines a global variable 'x' with value 50, then a function 'func(x)' that prints the passed 'x', reassigns 'x' to 2 locally, and prints the new local 'x'. Finally, it calls 'func(x)' and prints the global 'x' again. Context: Illustrates variable scope in programming, specifically how a local variable within a function does not affect a global variable of the same name. **OUTPUT_BLOCK**: Untitled Description: The output generated by the Python code example. It shows 'x= 50' (from the function's initial print), 'لقد غيرت x إلى 2' (from the function's local reassignment and print), and 'لا تزال x= 50' (from the global print after the function call, confirming the global variable was unaffected). Context: Provides the result of executing the Python code, visually confirming the explanation of local variable scope and the non-alteration of global variables by local reassignments.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 4 بطاقة لهذه الصفحة

ما المقصود بنطاق المتغير (Variable Scope) في البرمجة؟

  • أ) هو نوع البيانات الذي يخزن فيه المتغير قيمته.
  • ب) هو جزء المقطع البرمجي الذي يُمكن الوصول إلى المتغير واستخدامه فيه.
  • ج) هو الاسم الذي نعطيه للمتغير عند تعريفه.
  • د) هو الوقت الذي يظل فيه المتغير محتفظاً بقيمته في الذاكرة.

الإجابة الصحيحة: b

الإجابة: هو جزء المقطع البرمجي الذي يُمكن الوصول إلى المتغير واستخدامه فيه.

الشرح: 1. نطاق المتغير هو مفهوم أساسي في البرمجة. 2. يحدد المناطق في الكود حيث يمكن استخدام متغير معين. 3. يمنع حدوث تضارب في الأسماء ويحسن تنظيم البرنامج.

تلميح: فكر في المنطقة التي يكون فيها المتغير معروفاً وفعالاً.

التصنيف: تعريف | المستوى: سهل

ما الخاصية الرئيسية للمتغير المحلي (Local Variable) داخل دالة في بايثون؟

  • أ) يمكن الوصول إليه وتعديله من أي جزء في البرنامج.
  • ب) يبدأ من تعريف اسم الدالة، وينتهي عند توقف الدالة عن التنفيذ، ولا يؤثر في المتغيرات الخارجية التي تحمل نفس الاسم.
  • ج) يجب أن يكون اسمه مختلفاً عن أي متغير آخر في البرنامج كله.
  • د) يحتفظ بقيمته حتى بعد انتهاء تنفيذ الدالة التي عُرف فيها.

الإجابة الصحيحة: b

الإجابة: يبدأ من تعريف اسم الدالة، وينتهي عند توقف الدالة عن التنفيذ، ولا يؤثر في المتغيرات الخارجية التي تحمل نفس الاسم.

الشرح: 1. المتغير المحلي يُصرّح عنه داخل دالة. 2. نطاقه يقتصر على تلك الدالة فقط. 3. يبدأ مع بداية تنفيذ الدالة وينتهي بانتهائها. 4. أي تغيير عليه لا يؤثر على متغيرات خارج الدالة تحمل نفس الاسم.

تلميح: تذكر أن تأثيره محدود بمكان وجوده.

التصنيف: مفهوم جوهري | المستوى: متوسط

في الكود التالي، ما قيمة `x` التي ستُطبع في السطر الأخير (`print('لا تزال x=', x)`)? python x = 50 def func(x): print('x= ', x) x = 2 print('لقد غيرت x إلى', x) func(x) print('لا تزال x=', x)

  • أ) 2
  • ب) 50
  • ج) سيسبب خطأ لأن `x` غير معرف.
  • د) قيمة `x` داخل الدالة قبل التغيير، أي 50.

الإجابة الصحيحة: b

الإجابة: 50

الشرح: 1. `x = 50` تُنشئ متغيراً عاماً قيمته 50. 2. عند استدعاء `func(x)`، تُمرر قيمة المتغير العام (50) إلى المعامل المحلي `x` داخل الدالة. 3. داخل الدالة، `x = 2` تُغير قيمة المتغير المحلي فقط إلى 2. 4. عند انتهاء الدالة، يُدمر المتغير المحلي `x` ذو القيمة 2. 5. السطر الأخير يطبع المتغير العام `x` الذي لم يتأثر وظلت قيمته 50.

تلميح: ركز على الفرق بين المتغير العام خارج الدالة والمتغير المحلي داخل الدالة.

التصنيف: سؤال اختبار | المستوى: متوسط

متى نحتاج إلى استخدام المتغيرات العامة (Global Variables) في بايثون؟

  • أ) عندما نريد إنشاء متغير يستخدم داخل دالة واحدة فقط.
  • ب) عندما نريد تعيين قيمة لاسم محدد في المستوى الأعلى من المقطع البرمجي (خارج نطاق محدد مثل الدوال) من داخل نطاق محلي (مثل داخل دالة).
  • ج) عندما يكون اسم المتغير طويلاً ومعقداً.
  • د) عندما نريد تخزين أكثر من قيمة في مكان واحد.

الإجابة الصحيحة: b

الإجابة: عندما نريد تعيين قيمة لاسم محدد في المستوى الأعلى من المقطع البرمجي (خارج نطاق محدد مثل الدوال) من داخل نطاق محلي (مثل داخل دالة).

الشرح: 1. المتغير العام يُعرّف في المستوى الرئيسي للبرنامج. 2. للوصول إليه من داخل دالة وتعديله، يجب الإعلان عنه باستخدام الكلمة المفتاحية `global`. 3. بدون `global`، أي تعيين داخل الدالة سينشئ متغيراً محلياً جديداً.

تلميح: تذكر أن التعديل من داخل نطاق مغلق يتطلب إعلاناً خاصاً.

التصنيف: مفهوم جوهري | المستوى: صعب