بايثون هي لغة برمجة قوية ومرنة توفر وظائف مختلفة للعمل مع البيانات. واحدة من المهام الهامة للمبرمج هو تمرير صفيف إلى وظيفة. في هذه المقالة ، سنلقي نظرة على طريقة بسيطة وفعالة لتمرير صفيف إلى وظيفة بايثون.
يعد تمرير صفيف إلى وظيفة بايثون تقنية ضرورية عندما تحتاج إلى معالجة كمية كبيرة من البيانات. تسمح لك المصفوفات بتخزين وترتيب قيم متعددة في متغير واحد. يمكن استخدامها لأغراض مختلفة ، مثل تخزين المعلومات حول المناطق الزمنية أو الألوان أو النتائج التجريبية.
لتمرير مصفوفة إلى دالة ، يكفي تحديدها في وسيطات الوظيفة. على سبيل المثال ، إذا كانت لديك وظيفة تجمع القيم في مصفوفة ، فيمكنك تمرير هذه المصفوفة كوسيطة إلى الوظيفة وتحديد نوع البيانات الخاص بها. يمكنك أيضا استخدام الكلمة ديف لتحديد وظيفة ، ومن ثم استدعاؤها عن طريق تمرير صفيف كوسيطة.
في هذا المثال ، حددنا دالة المجموع ، والتي تأخذ المصفوفة كوسيطة. بعد ذلك ، نذهب من خلال كل عنصر من عناصر المصفوفة وتلخيص قيمها. في النهاية ، نقوم برد المبلغ.
بعد تحديد الوظيفة ، نقوم بإنشاء مصفوفة وتعيينها إلى متغير المصفوفة. ثم نسمي دالة سوم_أراي ، بتمرير المصفوفة كوسيطة. يتم تخزين النتيجة في متغير النتيجة وعرضها على الشاشة.
- إعداد مجموعة وظيفة
- إعلان واستدعاء وظيفة
- تحديد معلمات الوظيفة
- طريقة نقل الصفيف
- المشاكل والأخطاء المحتملة
- توصيات للاستخدام الفعال
- مثال على الكود مع تمرير صفيف إلى دالة
- سؤال وجواب
- كيف يمكنني تمرير مجموعة إلى وظيفة في بيثون?
- كيف يمكنني تمرير مجموعة ثنائية الأبعاد إلى وظيفة في بيثون?
- كيف يمكنني تمرير مجموعة إلى وظيفة وتغييره داخل وظيفة في بيثون?
إعداد مجموعة وظيفة
قبل تمرير مجموعة إلى وظيفة في بيثون ، تحتاج إلى إعداد مجموعة نفسها وتحديد وظيفة من شأنها أن تعمل معها.
هناك طرق مختلفة لإنشاء مصفوفة في بايثون. على سبيل المثال ، يمكنك استخدام وظيفة القائمة المضمنة () لإنشاء مصفوفة فارغة ، أو تمرير قائمة بالعناصر كوسيطة لإنشاء مصفوفة مملوءة:
# إنشاء مصفوفة فارغة
بلدي = [1, 2, 3, 4, 5] # إنشاء صفيف مع العناصر
بعد إنشاء مصفوفة ، يمكنك تحديد وظيفة ستعمل مع هذه المصفوفة. للقيام بذلك ، يستخدم بيثون الكلمة مواطنه ، تليها اسم وظيفة والحجج ، إن وجدت. داخل الوظيفة ، يمكنك إجراء العمليات اللازمة مع المصفوفة:
ديف وظيفتي (صفيف):
لأني في صفيف:
طباعة (ط)
في هذا المثال ، يتم تعريف دالة تسمى وظيفتي ، والتي تحتوي على مصفوفة وسيطة واحدة. يمر عبر عناصر المصفوفة ويعرضها على الشاشة.
لتمرير صفيف إلى وظيفة ، تحتاج فقط إلى استدعاء هذه الوظيفة وتمرير الصفيف كوسيطة:
وظيفتي(عملي)وبالتالي ، سيتم تمرير المصفوفة إلى الوظيفة وستكون الوظيفة قادرة على إجراء العمليات اللازمة عليها.
إعلان واستدعاء وظيفة
في بيثون ، يتم استخدام الكلمة مواطنه للإعلان عن وظيفة. بناء جملة إعلان الوظيفة هو كما يلي:
| مواطنه | اسم الوظيفة | (المعلمات) | : |
| وظيفة_الجسم |
في إعلان الوظيفة ، نحدد اسمها والمعلمات الممكنة بين قوسين ونقطتين في نهاية السطر. يتبع القولون كتلة من التعليمات البرمجية التي تمثل جسم الوظيفة.
مثال على إعلان وظيفة تعرض تحية على الشاشة:
مواطنه قل_مرحبا():
طباعة ("مرحبا ، العالم!")
لاستدعاء دالة ، يتم استخدام اسمها ، متبوعا بأقواس. إذا كانت الدالة تحتوي على معلمات ، يتم تمرير قيمها بين قوسين عند استدعاء الدالة.
مثال على استدعاء دالة:
قل مرحبا()
ستكون نتيجة تنفيذ هذا الرمز إخراج السطر التالي:
مرحبا ، العالم!
تحديد معلمات الوظيفة
عند تحديد وظيفة في بايثون ، يمكنك تحديد المعلمات التي سيتم استخدامها عند استدعاء الوظيفة. تسمح لك هذه المعلمات بتمرير البيانات إلى وظيفة واستخدامها داخل جسم الوظيفة.
بناء الجملة لتعريف وظيفة مع المعلمات هو كما يلي:
| اسم الوظيفة (بارام1, بارام2,...): |
|---|
أين:
- اسم الوظيفة-اسم الوظيفة;
- بارام1, بارام2,... - معلمات الوظيفة;
- :- رمز القولون يدل على بداية الجسم وظيفة.
يمكن أن تحتوي معلمات الوظيفة على قيم افتراضية ، مما يسمح لك باستدعاء الوظيفة دون تحديد جميع الوسائط.
مثال على تحديد وظيفة مع المعلمات:
- مواطنه تحية (اسم):
- طباعة ("مرحبا ،" + اسم+"!")
- تحية ("أندرو") # مخرجات " مرحبا ، أندرو!"
في هذا المثال ، يتم تعريف وظيفة الترحيب بمعلمة اسم واحدة. عند استدعاء الوظيفة ، يتم تمرير الوسيطة "أندرو" ، والتي يتم عرضها على الشاشة مع التحية.
طريقة نقل الصفيف
يعد تمرير مصفوفة إلى وظيفة في لغة برمجة بايثون عملية بسيطة إلى حد ما. ربما تكون الطريقة الأكثر شيوعا لتمرير مصفوفة إلى دالة هي تمريرها كوسيطة. في الوقت نفسه ، من المهم أيضا فهم الطرق المختلفة للإعلان عن المصفوفة وتمريرها.
النظر في مثال لتمرير صفيف إلى وظيفة:
ديف برينت_أراي (صفيف):
لعنصر في مجموعة:
طباعة (عنصر)
# إنشاء وتمرير مجموعة إلى وظيفة
بلدي = [1, 2, 3, 4, 5]
برينتأراي (مايأراي)
في هذا المثال ، يتم إنشاء وظيفة الطباعة ، والتي تأخذ وسيطة واحدة-مصفوفة. داخل الوظيفة ، يتم فرز عناصر المصفوفة وطباعتها. ثم يتم إنشاء صفيف بلدي ويتم إخراج عناصره عن طريق استدعاء وظيفة الطباعة مع وسيطة بلدي.
بالإضافة إلى تمرير صفيف كوسيطة ، يمكنك استخدام المتغيرات العالمية لتمرير صفيف إلى وظيفة. يمكن الإعلان عن متغير عمومي خارج الوظيفة ويمكن الوصول إليه من خلال جميع الوظائف المحددة في هذه الوحدة.
# المتغير العالمي
من صفيف بلدي= [1, 2, 3, 4, 5]
ديف برينت_أراي():
جلوبال ماي راي
للعنصر في بلدي:
طباعة (عنصر)
# استدعاء وظيفة لطباعة صفيف
برينت_أراي()
في هذا المثال ، يتم الإعلان عن صفيف مي_أراي كمتغير عمومي متاح لجميع الوظائف في الوحدة النمطية. داخل وظيفة الطباعة ، يتم استخدام الكلمة الرئيسية العامة للوصول إلى المتغير العالمي. ثم يتم فرز عناصر المصفوفة وطباعتها.
وأخيرا ، تمرير صفيف إلى وظيفة في بيثون يمكن تنفيذها عن طريق تمريرها كوسيطة إلى وظيفة أو باستخدام المتغيرات العالمية. يتم تحديد التنفيذ اعتمادا على الموقف المحدد ومتطلبات البرنامج.
المشاكل والأخطاء المحتملة
عند تمرير صفيف إلى وظيفة في بيثون ، قد تحدث بعض المشاكل والأخطاء. دعونا ننظر إلى بعض منهم:
- بناء جملة غير صحيح عند استدعاء دالة: عند تمرير مصفوفة إلى دالة ، تحتاج إلى التأكد من صحة بناء جملة استدعاء الوظيفة. من الضروري تحديد الحجج الصحيحة وترتيبها.
- اسم متغير غير معروف: عند تمرير مصفوفة إلى دالة ، تأكد من تحديد المتغير وتعريفه في البرنامج. إذا لم يتم تعريف المتغير ، الخطأ "ناميرور: اسم" اسم المتغير "لم يتم تعريف" سيحدث.
- نوع الوسيطة غير صحيح: إذا كانت الدالة تتوقع تلقي مصفوفة ، ولكن يتم تمرير نوع بيانات آخر ، مثل سلسلة أو رقم ، بدلا من ذلك ، فسيحدث خطأ. من الضروري التأكد من أن الوسيطة التي يتم تمريرها تحتوي على نوع البيانات الصحيح.
- تغيير المصفوفة الأصلية: إذا قمت بتغيير عناصر المصفوفة الأصلية داخل الوظيفة ، فسيؤثر ذلك على قيمها خارج الوظيفة. إذا كنت بحاجة إلى تغيير المصفوفة الأصلية ، فيجب عليك إنشاء نسخة منها والعمل معها.
- عدم التحقق من وجود مصفوفة: قبل تمرير المصفوفة إلى الوظيفة ، من الضروري التحقق من وجودها. إذا كان الصفيف مفقودا أو فارغا ، فيمكنك توفير المعالجة المناسبة أو إخراج رسالة خطأ.
توصيات للاستخدام الفعال
في الحالة التي تحتاج فيها إلى تمرير مصفوفة إلى وظيفة في بايثون ، هناك العديد من التوصيات المفيدة التي ستساعدك على القيام بذلك بشكل فعال:
- تحديد نوع البيانات في المصفوفة: قبل تمرير المصفوفة ، من المهم تحديد نوع البيانات التي سيتم تخزينها في المصفوفة. سيساعدك هذا في اختيار الطريقة الأكثر فعالية لنقل البيانات ومعالجتها.
- استخدم وحدة الصفيف: بيثون لديه المدمج في وحدة مجموعة التي توفر طرق أكثر كفاءة للعمل مع المصفوفات. يسمح لك بتحديد نوع البيانات في صفيف مقدما ولديه أداء أعلى من القوائم القياسية.
- استخدم مكتبة نومبي: إذا كنت بحاجة إلى العمل مع كميات كبيرة من البيانات ، فمن المستحسن استخدام مكتبة نومبي. يوفر طرقا فعالة للعمل مع المصفوفات المحسنة للأداء العالي.
- استخدام النقل بالرجوع: عند تمرير مصفوفة إلى دالة في بايثون ، يتم استخدام النقل بالرجوع افتراضيا. هذا يعني أنه داخل الوظيفة ستعمل مع نفس المصفوفة كما كان قبل استدعاء الوظيفة. إذا كنت ترغب في تجنب تغيير المصفوفة الأصلية داخل الوظيفة ، فمن المستحسن عمل نسخة منها قبل النقل.
- استخدام أساليب العمل مع المصفوفات: تقدم بيثون العديد من الأساليب المضمنة للعمل مع المصفوفات ، مثل إلحاق () ، البوب () ، إزالة() وغيرها. من المستحسن أن تتعرف على هذه الأساليب واستخدامها حسب الحاجة للعمل مع المصفوفات بشكل أكثر كفاءة.
- تحسين استخدام الذاكرة: إذا كنت بحاجة إلى العمل بكميات كبيرة من البيانات ، فمن المستحسن تحسين استخدام الذاكرة. على سبيل المثال ، يمكنك استخدام أساليب نومبي لتقليل حجم صفيف ، أو استخدام صفائف متفرق إذا كنت بحاجة إلى تخزين عدد كبير من العناصر الفارغة.
باتباع هذه التوصيات ، يمكنك استخدام فعال تمرير صفيف إلى وظيفة في بيثون وتحسين أداء البرامج الخاصة بك.
مثال على الكود مع تمرير صفيف إلى دالة
وفيما يلي مثال على رمز بيثون مما يدل على نقل مجموعة إلى وظيفة:
صفر حساب المجموع (أرقام):
مجموع الأرقام = مجموع(أرقام)
مبلغ الإرجاع
أرقام_قائمة = [1, 2, 3, 4, 5]
النتيجة = حساب المجموع (قائمة الأرقام)
طباعة (و " مجموع الأرقام هو: {نتيجة}")
في هذا المثال ، يتم تعريف الدالة الحسابية ، والتي تأخذ أرقام معلمة واحدة-مجموعة من الأرقام. داخل الدالة ، يتم حساب مجموع عناصر المصفوفة باستخدام دالة المجموع المضمنة.
ثم ، خارج الوظيفة ، يتم إنشاء مجموعة من الأرقام ، قائمة الأرقام ، تحتوي على أرقام من 1 إلى 5. بعد ذلك ، يتم استدعاء دالة الحساب مع وسيطة قائمة الأرقام. يتم تخزين قيمة الإرجاع للدالة في متغير النتيجة.
أخيرا ، تقوم وظيفة الطباعة بإخراج رسالة تحتوي على المجموع المحسوب للأرقام.
سيؤدي تنفيذ هذا الرمز إلى الإخراج:
مجموع الأرقام هو: 15
وهكذا ، في هذا المثال ، يتم تمرير مصفوفة قائمة الأرقام بنجاح إلى دالة الحساب واستخدامها لحساب مجموع عناصرها.
سؤال وجواب
كيف يمكنني تمرير مجموعة إلى وظيفة في بيثون?
هناك عدة طرق لتمرير صفيف إلى وظيفة في بيثون. واحدة من أبسط الطرق هي ببساطة تمرير صفيف كوسيطة إلى وظيفة. للقيام بذلك ، يكفي تحديد اسم المصفوفة بين قوسين عند استدعاء الوظيفة. على سبيل المثال ، إذا كان لدينا دالة مجموع تلخص جميع عناصر المصفوفة ، فيمكننا تسميتها على النحو التالي: مجموع(مجموعتي). يمكنك أيضا تمرير مصفوفة إلى دالة باستخدام علامة النجمة قبل اسم المصفوفة. على سبيل المثال ، إذا كانت لدينا وظيفة الطباعة التي تخرج جميع عناصر المصفوفة ، فيمكننا تسميتها على النحو التالي: الطباعة(*بلدي).
كيف يمكنني تمرير مجموعة ثنائية الأبعاد إلى وظيفة في بيثون?
لنقل مصفوفة ثنائية الأبعاد إلى وظيفة في بايثون ، يمكنك استخدام نفس الأساليب المستخدمة في مصفوفة أحادية البعد. ومع ذلك ، في هذه الحالة ، عند تحديد وظيفة ، يجب تحديد معلمتين بحيث يمكن تمرير صفيف ثنائي الأبعاد إلى الوظيفة. على سبيل المثال ، إذا كان لدينا وظيفة مصفوفة الطباعة التي تخرج جميع عناصر مصفوفة ثنائية الأبعاد ، فيمكننا تعريفها على النحو التالي: مصفوفة الطباعة(مصفوفة):. بعد ذلك ، عند استدعاء الوظيفة ، يمكنك تمرير مصفوفة ثنائية الأبعاد كوسيطة. على سبيل المثال ، طباعة مصفوفة(مصفوفة بلدي).
كيف يمكنني تمرير مجموعة إلى وظيفة وتغييره داخل وظيفة في بيثون?
لتمرير صفيف إلى وظيفة وتغييره داخل وظيفة في بيثون ، تحتاج إلى استخدام نقل بالرجوع إليها. هذا يعني أن الوظيفة ستعمل مع المصفوفة الأصلية ، وليس نسخة منها. عند تمرير مصفوفة إلى دالة ، ستكون تغييراتها مرئية من خارج الوظيفة. على سبيل المثال ، إذا كانت لدينا دالة زيادة تزيد كل عنصر من عناصر المصفوفة بمقدار 1 ، فيمكننا تسميتها على النحو التالي: الزيادة(صفحتي). بعد استدعاء الدالة ، سيحتوي صفحتي على القيم التي تم تغييرها.