تعلم بايثون من الصفر (قصتي). أفضل طريقة لتعلم أنشطة بايثون بايثون للمبتدئين

بيت / تركيب الجهاز

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

من هذه المقالة سوف تتعلم:

مرحبا، مرحبا! Gridin Semyon على اتصال. وأخيراً وصلت إلى الموضوع الرئيسي لهذه المدونة، وهو برمجة الأنظمة الذكية باستخدام بايثون. لقد كنت أستعد لهذا لفترة طويلة. والآن، أنا مستعد لكتابة مقالات مثيرة للاهتمام ودراسة هذا الموضوع بعمق.

لماذا أحتاج هذا؟ في البداية، حددت لنفسي المهمة التالية حول تطوير التعلم الآلي ورؤية الكمبيوتر.

ربما إذا كنت محظوظًا، فسوف ينتهي بي الأمر بين مطوري مشاريع الروبوتات المعقدة، وربما سأصبح بنفسي منظمًا وأفتح إنتاج الروبوتات الشخصية، أو ربما، ربما... إذا لم ينجح شيء، والله بارك الله فيه، أنا أستمتع بالعملية، وليس النتيجة.

ثم سأبدأ قصتي))...

مميزات لغة البرمجة بايثون

كما كتبت أعلاه، تؤدي هذه اللغة مجموعة واسعة جدًا من الوظائف. من المستحيل ببساطة تغطية كل شيء. لذلك، قبل أن تدرس، من فضلك اسأل نفسك السؤال، لماذا أحتاج هذا؟ ما هي المشاكل التي سأحلها باستخدام هذه اللغة؟ إذا أجبت بالإيجاب، فاستمر.

كيف يمكن أن تكون بايثون مفيدة؟

  1. العمل مع ملفات xml/html
  2. العمل مع طلبات http
  3. واجهة المستخدم الرسومية (واجهة رسومية)
  4. إنشاء البرامج النصية على شبكة الإنترنت
  5. العمل مع بروتوكول نقل الملفات
  6. العمل مع الصور وملفات الصوت والفيديو
  7. الروبوتات (استخدام أجهزة الكمبيوتر ذات اللوحة الواحدة)
  8. برمجة الحوسبة الرياضية والعلمية

وما شابه ذلك. بايثون قادرة على أداء نصيب الأسد من المهام الروتينية.

في بايثون يمكنك بناء و نسخة احتياطية، والعمل بها عن طريق البريد الإلكترونيوآلة حاسبة بسيطة وسكربت للموقع. اللغة لا تقتصر على أي شيء. الأمر الأكثر إثارة للاهتمام هو أنه يتم استخدامه من قبل عمالقة تكنولوجيا المعلومات مثل Google وYandex.

في هذه المقالة سوف ننظر إليك برمجة بايثونمن الصفر.

لكي يعمل البرنامج على جهاز معين، لا يهم نظام التشغيل - Windows، Linux، RaspbianOS، MacOS. ومن المهم أن يكون لديك مترجم فوري يفهم الأوامر وينفذها.

قم بما يلي: قم بتنزيل python IDE c مصدر رسمي.

التعرف على المترجم

لذلك يقوم المترجم بمعالجة الكود النصي للبرنامج. هناك وضع بيئة تطوير تفاعلية. يمكنك إطلاقه بعدة طرق:

  1. من سطر أوامر cmd العادي، أدخل الأمر python ؛
  2. من سطح المكتب (اختصار)؛
  3. باستخدام قائمة ابدأ - بيثون IDLE؛

ستفتح لك هذه النافذة:

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

لدى Arduino أيضًا غلاف برمجي خاص بها. اقرأها.

من أين تبدأ تعلم بايثون؟ دعونا نحاول كتابة البرنامج الأول؟

إنشاء البرنامج الأول

برنامج بايثون بسيط ملف نصيمع رمز مكتوب. امتداد هذا الملف هو .py. يمكنك تشغيل البرنامج عن طريق تحديد الاسم المناسب في سطر الأوامر. دعونا نكتب أبسط واحد برنامج قياسي"مرحبا بالعالم!"

المهمة هي عرض "Hello World!" إطلاق المفكرة.

نكتب الكود التالي :

بايثون

طباعة ("مرحبا بالعالم !!!")

طباعة ("مرحبا بالعالم !!!")

واحفظه في مجلد يتبع المسار C:\MyScripts. أوصي بوضع جميع المشاريع في هذا المجلد.

لكي نتمكن من تشغيل البرنامج النصي، حدد سطر الأوامروأدخل المسار إلى الملف الخاص بك:

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

يعتبر أفضل كتاب عن لغة بايثون للمبتدئين هو البرنامج التعليمي لمايك ماكجراث. دليل شامل لكتابة كود بايثون.

آسف على جودة الصورة، فهي لا تعمل بأي طريقة أخرى. لا أنصح بشراء الكتب الأخرى بعد، فهي في الواقع ضخمة وضخمة. سوف يكون McGrath كافيا كأساس.

يا رفاق، هذا كل شيء بالنسبة لي، إذا كان لديك أي أسئلة، يمكنك دائمًا الكتابة لي. اشترك في أخبار المدونة. أرسلها إلى أصدقائك. شكرًا لكم على اهتمامكم.

مع أطيب التحيات، غريدين سيميون

إن مشاهدة البث على مدار الساعة لن يجعل الشخص رياضيًا ناجحًا، كما أن حفظ مواد المحاضرة عن ظهر قلب لا يضمن الحصول على مهنة لائقة كطبيب. ليس سراً أن نجاح أي عمل تجاري يكمن في التدريب المستمر. وليس خطيئة تكرار الحقيقة المشتركة: حتى الموهبة الاستثنائية تضعف بدون التطوير والعمل المستمر على الذات.

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

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

الجمهور المستهدف للموقع هو مطوري الويب المبتدئين. إنهم الأشخاص الذين تم تكليفهم بعدد كبير من المهام في HTML وPHP وPython وJavaScript، والتي قد يستغرق حلها أكثر من يوم واحد أو حتى أسبوع. لا تتطلب البوابة التسجيل أو أدوات إضافية: يتم ضمان سهولة الاستخدام من خلال المحرر المدمج، بالإضافة إلى روابط للإجابات الصحيحة إذا كان حل المشكلة لا يزال يعوقك.

خفاش الترميز

يتبع Coding Bat إستراتيجية مماثلة. فضل منشئو المورد أيضًا التركيز الضيق، مع التركيز على التمارين في Java وPython. إن التنوع الصغير في التمارين يعوض أكثر من كمية ونوعية المهام، فضلاً عن سهولة الاستخدام. بالطبع، مرة أخرى، المحرر المدمج والإجابات. بالإضافة إلى ذلك، فإن البوابة مناسبة لكل من المطورين المبتدئين وذوي الخبرة.

دير كود

يكمن نجاح أي تدريب في الدافع الصحيح الموجود بلا شك في Code Abbey. وبالتالي، يمكن لأي مستخدم يحل 125 مشكلة أن يحصل على الشهادة المناسبة. بالطبع، إنه مجاني. ميزة أخرى للمورد هي القدرة على إكمال المهام بأي لغة مشتركة تقريبًا (من C إلى جوليا).

المبرمج الأعلى

ومع ذلك، حتى هذا الدافع ليس فعالا مثل المكافأة المالية. لذا، في Top Coder، لا يمكنك فقط رفع مستواك، بل يمكنك أيضًا كسب أموال إضافية: في الواقع، المورد عبارة عن قائمة من المسابقات، سيحصل الفائز بها على مكافأة مذهلة، ولكنها ممتعة. يتمتع المشاركون الأكثر نجاحًا أيضًا بفرصة لفت الانتباه. يقوم عمالقة الصناعة مثل Microsoft أو Facebook أو IBM بمراقبة البوابة بشكل دوري بحثًا عن مواهب جديدة.

مبرمج

في وقت واحد، كان من الممكن أيضًا المشاركة في المسابقات على هذه البوابة. ومع ذلك، فقد فقدت جميعها أهميتها الآن. ومع ذلك، لا يزال المورد يوفر منصة غنية لتنمية المهارات. بادئ ذي بدء، نظرًا لوجود العديد من المهام في Java وC++ وPHP وC# وRuby وPython وObjective-C. في كل واحد منهم تحتاج إلى إضافة جزء كبير من التعليمات البرمجية. كقاعدة عامة، يتم تخصيص 30 دقيقة لإكمال المهمة.

مهارات البرمجة

بالنسبة لأولئك الذين سئموا من كتابة الأكواد ويريدون إضافة المزيد من التنوع إلى عملية التعلم، فإن بوابة مهارات البرمجة مناسبة. يمكنك أن تجد فيه سلسلة من الاختبارات مكونة من 20 سؤالًا في لغات C وHTML وC# وJava ولغات أخرى. تستغرق كل مهمة 25 دقيقة لإكمالها. بالإضافة إلى ذلك، يحتوي المورد على قائمة غنية بالأسئلة التي قد تواجهها أثناء المقابلة.

SQL-EX.RU

وأخيرًا، تعد هذه البوابة مثالية لطلاب SQL. يقدم عددًا كبيرًا من المهام التي تغطي جميع أنواع الطلبات. لتحفيز المستخدمين، تم تقديم نظام تصنيف لجميع الزوار المسجلين - لكل إجابة صحيحة ستحصل على عدد معين من النقاط. يعتمد عددهم على مدى تعقيد المهمة، والتي، بالمناسبة، هي ميزة أخرى للمورد. بعد كل شيء، فهو مناسب لكل من المبتدئين (أو أولئك الذين لديهم ما يكفي من المعرفة الأساسية) وأولئك الذين تكون خدمتهم مستحيلة دون إنشاء استعلامات معقدة.

العيب الوحيد، ولكن المزعج في بعض الأحيان، هو عدم وجود طرق بديلة. بمعنى آخر: صحة التمرين لا تتحدد بالإجابة بل بطريقة الحل. ونتيجة لذلك، تنشأ في بعض الأحيان مفارقات لا تعتبر فيها الإجابة الصحيحة صحيحة.

بالنسبة لأولئك الذين بدأوا للتو رحلة البرمجة الخاصة بهم، نوصي بدورة مجانية حول .

  • الهدف 1- مساعدة في الروابط والمواد لأولئك الذين يخططون لدراسة البرمجة واتخاذ بايثون كلغتهم الأولى. أظهر أن الأمر ليس صعبًا كما يبدو.
  • الهدف 2- اجمع روابط لمواد مفيدة ومثيرة للاهتمام حول هذا الموضوع في التعليقات.

0. هل سأنجح؟

منذ البداية كنت أشك في أنني سأتمكن من فعل أي شيء أكثر من Hello World. بدا لي أن البرمجة كانت صعبة للغاية وساحرة للغاية. بالإضافة إلى ذلك، هناك العمل والهوايات والأسرة التي سوف تصرف انتباهك عن الدراسة الكاملة.

لم يكن علي أن أخاف ولا أوصيك بذلك. ربما لن تصبح البرمجة مهنتي الرئيسية أبدًا، لكنها طريقة رائعة للإبداع. هذه هي الشطرنج والحضارة في زجاجة واحدة.

كل شيء أبسط مما يبدو وأكثر إثارة للاهتمام.

1. الأدب

مارك لوتز "برمجة بايثون"- يُنصح بقراءته في العديد من المنتديات والدورات. بدا لي أنه مفصل للغاية ومحمل للمبتدئين. إقرأ كثيراً، برمج قليلاً. من المفيد قراءته بعد إتقان بايثون على الأقل.

مارك سمرفيلد "برمجة بايثون 3"- ديناميكيًا مع أمثلة ممتازةوالمهام. بدون تعمق غير ضروري، والذي لا يؤدي إلا إلى تعقيد كل شيء في البداية. أوصي بالبدء بهذا الكتاب، فهو سيساعدك على الفهم بسرعة دون تخويفك بالتعقيدات.

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

2. ماذا تقرأ على الإنترنت

http://pythonworld.ru/ - بسيط و بلغة واضحةيتحدث عن أساسيات اللغة، وغالبًا ما يستخدم كورقة غش.

وبعد شهرين آخرين، تمكنت من إنشاء أول تطبيق لـ Django. لكن الشيء الرئيسي هو أن لدي الآن المعرفة الكافية للتطوير والتعلم المستقل. أصعب شيء هو الوصول إلى هذه النقطة.

وبعد شهر آخر، انضممت إلى مشروعين على GitHub وأشارك فيهما. بالطبع ما زلت أحل مشاكل بسيطة، لكن في المقابل أتلقى النصائح والتدريب.

العلامات: التدريب على بايثون، التدريب على البرمجة

التحضير للمقابلة لوظيفة مطور بايثون

المواد المستخدمة في التحضير: الدليل الحيوي لإجراء مقابلات بايثون، يجب أن يكون لديك أسئلة مقابلة بايثون، 15 سؤالًا أساسيًا لمقابلة بايثون، أسئلة وأجوبة مقابلة بايثون

واليوم، يستمر عدد مبرمجي بايثون في النمو، لكن عدد الوظائف المتاحة لهم لا ينمو بهذه السرعة. يحتاج المطور الحديث إلى أن يكون قادرًا على المنافسة من أجل الوصول إلى المنصب المطلوب. لقد قمنا بإعداد مقال بالموضوعات والأسئلة التي قد يطرحها صاحب العمل أثناء المقابلة، وأكملناها بتفسيرات صغيرة - وهي في الأساس مشاكل برمجة بايثون مع الحلول. ستكون المادة مفيدة لأولئك الذين يواصلون المراجعة، وستساعد المبتدئين على تحديد مكان اتخاذ خطواتهم الأولى وما يجب الانتباه إليه. فكر في الأمر كنوع من المنارة.

العمل مع القوائم

تعبيرات لامدا، ومولدات القائمة، وتعبيرات المولدات

تعبيرات لامدا- طريقة اختصار لإنشاء وظائف مجهولة ذات سطر واحد. إن بساطتها في كثير من الأحيان (ولكن ليس دائمًا) تجعل الكود أكثر وضوحًا وقابلية للقراءة من إعلانات الوظائف الكلاسيكية. ومن ناحية أخرى، فإن نفس البساطة تحد من إمكانيات ومجالات تطبيق تعبيرات لامدا.

قائمة المولداتتوفير صيغة موجزة لإنشاء القوائم. يتم استخدامها لإنشاء قوائم يكون فيها كل عنصر نتيجة لبعض العمليات (العمليات) على عناصر تسلسل أو مكرر آخر. يمكن استخدام مولدات القائمة لإنشاء تسلسل لاحق لتلك العناصر التي يستوفي أعضاؤها شرطًا معينًا. تعد مولدات القائمة في Python بديلاً فريدًا لوظائف الخريطة () ومرشح () المضمنة.

تتشابه تعبيرات Lambda مع وظائف Map() وfilter() ومولدات القوائم، لذا فإن اختيار إحدى هذه الأدوات أمر شخصي وكل حالة على حدة. ولكن تجدر الإشارة إلى أن مولدات القائمة أسرع قليلاً - حيث يؤدي استدعاء وظيفة lambda إلى إنشاء إطار مكدس جديد.

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

ما الفرق بين القائمة والصفوف؟

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

سيقول المرشحون الأكثر تقدمًا أن الصفوف غير متجانسة وأن استخدامها يشبه استخدام البنية في لغة البرمجة C، كما أن القوائم تشبه المصفوفات المعتادة.

تصحيح التعليمات البرمجية والاختبار

ما النهج الذي تستخدمه لاختبار الوحدة في بايثون؟

تتعلق الإجابة الأساسية على هذا السؤال باستخدام إطار عمل بايثون - Unittest.

يدعم Unittest أتمتة الاختبار، ومشاركة التعليمات البرمجية لإعداد الاختبارات وإكمالها، وتجميع الاختبارات، والسماح بفصل الاختبارات عن إطار إعداد التقارير. توفر الوحدة Unittest فئات تسهل دعم هذه الصفات لمجموعة اختبار.

قد يُطلب منك وصف العناصر الأساسية لبنية Unittest، وهي:

  • مقعد الاختبار (تركيبات الاختبار) ؛
  • حالة الاختبار؛
  • جناح الاختبار؛
  • عداء الاختبار.

التكرارات

ما هو التكرار؟

Iterator عبارة عن واجهة توفر الوصول إلى عناصر المجموعة (المصفوفة أو الحاوية) والتنقل عبرها. في أنظمة مختلفةيمكن أن يكون للمكررات أسماء شائعة مختلفة. في مصطلحات أنظمة إدارة قواعد البيانات، تسمى التكرارات بالمؤشرات. في أبسط الحالات، يكون المكرر في اللغات ذات المستوى المنخفض بمثابة مؤشر.

ما هو الفرق بين التكرار والمولد؟

ترتبط هذه المصطلحات ارتباطًا وثيقًا (أي مولد هو مكرر)، وغالبًا ما يتم الخلط بينها، مما يؤدي أحيانًا إلى سوء الفهم. التكرار هو مفهوم أكثر عمومية. هذا كائن له طريقتان محددتان: __next__ و __iter__ . من ناحية أخرى، المولد هو مكرر. ولكن ليس العكس. يمكن الحصول على المولد باستخدام الكلمة الأساسية الإنتاجية في نص الوظيفة.

المربعات المحددة (البدء، التوقف): بالنسبة إلى i في النطاق (البدء، التوقف): العائد i * i المولد = المربعات (a، b)

جيل

مفهوم GIL هو أنه يمكن للمعالج تنفيذ مؤشر ترابط واحد فقط في المرة الواحدة. ويتم ذلك حتى لا يكون هناك منافسة بين المواضيع للمتغيرات الفردية. يتمتع مؤشر الترابط الذي يتم تنفيذه بإمكانية الوصول إلى البيئة بأكملها. تعمل ميزة تنفيذ الخيوط في Python على تبسيط العمل مع الخيوط بشكل كبير وتوفر أمانًا معينًا للخيوط.

تمرير الحجج

كيف يتم تمرير الكائنات غير القابلة للتغيير؟

يتم تمرير الكائنات غير القابلة للتغيير حسب القيمة. يتم تمرير كائنات مثل الأعداد الصحيحة والسلاسل كمراجع للكائنات بدلاً من نسخها من الكائنات.

كيف يتم تمرير الكائنات القابلة للتغيير؟

يتم تمرير الكائنات القابلة للتغيير "بواسطة المؤشر". يتم أيضًا تمرير كائنات مثل القوائم والقواميس كمراجع للكائنات، وهو أمر مشابه جدًا لكيفية تمرير المؤشرات إلى المصفوفات في لغة C - يمكن تعديل الكائنات القابلة للتغيير مباشرة داخل دالة، تمامًا مثل المصفوفات في لغة C.

>>> def f(a): # تم تعيين الاسم a للكائن الذي تم تمريره... a = 99 # تم تغيير المتغير المحلي فقط... >>> b = 88 >>> f(b)# في البداية يشير الاسمان a وb إلى نفس الرقم 88 >>> print(b) # المتغير b لم يتغير 88

في هذا المقتطف، عندما يتم استدعاء الدالة f(b)، يتم تعيين كائن 88 للمتغير a، ولكن المتغير a موجود فقط داخل الدالة المستدعىة. لا يؤثر تغيير المتغير a داخل الدالة على البيئة التي تم استدعاء الدالة منها - بل يتم إنشاؤه ببساطة في وقت الاستدعاء كائن جديدأ.

ما الذي سيتم إخراجه بعد الاستدعاء الثاني لإلحاق () في الكود أدناه؟

>>> def append(list=): ... # إلحاق طول القائمة بالقائمة... list.append(len(list)) ... return list... >>> append([" a"، "b"]) ["a"، "b"، 2] >>> >>> append() # يستخدم الاتصال بدون وسيطة القيمة الافتراضية للقائمة >>> >>> append() # لكن ماذا يحدث عندما يتم استدعاء الإلحاق مرة أخرى بدون وسيطة؟

عندما تكون القيمة الافتراضية لوسيطة الدالة عبارة عن تعبير، يتم تقييمها مرة واحدة فقط، وليس دائمًا عند استدعاء الدالة. وبالتالي، بعد تهيئة وسيطة القائمة لمصفوفة فارغة، ستستمر الاستدعاءات اللاحقة للدالة بدون وسيطات في استخدام نفس المصفوفة التي تمت تهيئتها في الأصل.

>>> append() # الاستدعاء الأول بدون وسيطة يستخدم القيمة الافتراضية >>> append() # ولكن بعد ذلك... >>> append() # الاستدعاءات المتتالية توسع القائمة الافتراضية >>> append() # و وهكذا يستمر...

كيف يمكنني تغيير تطبيق طريقة الإلحاق في السؤال السابق لتجنب السلوك غير المرغوب فيه الموضح هناك؟

يوجد تطبيق بديل لطريقة الإلحاق من شأنه أن يحل المشكلة:

>>> def append(list=None): ... if list is No: list = # يزيد طول القائمة... list.append(len(list)) return list... >>> append( ) >>>إلحاق()

أسئلة خارج فئات معينة

كيف يمكنك تبديل قيم متغيرين داخل سلسلة في بايثون؟

دعونا نلقي نظرة على مثال بسيط:

>>> س = "س" >>> ص = "ص"

تتطلب العديد من لغات البرمجة الأخرى القيام بشيء من هذا القبيل عند استبدال قيم X و Y:

>>> tmp = x >>> x = y >>> y = tmp >>> x, y ("Y"، "X")

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

>>> x,y = y,x >>> x,y ("Y"، "X")

ما الذي سيخرجه البيان الأخير أدناه؟

>>> flist = >>> for i in range(3): ... flist.append(lambda: i) ... >>> # ما الذي سيتم إخراجه؟

في أي إغلاق في بايثون، ترتبط المتغيرات بالاسم. وبالتالي فإن سطر التعليمات البرمجية أعلاه سوف ينتج ما يلي:

>>> flist = >>> for i in range(3): ... flist.append(lambda i = i: i)... >>>

ما هو الغرض من كلمة "الذات"؟

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

مستخدم الفئة: def __init__(self): self.name = "Ivan Ivanov" self.age = 16 user_obj = User() user_obj.name # self.name يحتوي على "Ivan Ivanov" كقيمة

ما هو الغرض من الكلمة الرئيسية "العائد"؟

يمكن للكلمة الأساسية "العائد" تحويل أي وظيفة إلى مولد. إنه يعمل بشكل مشابه لبيان الإرجاع، مع اختلاف أن الكلمة الأساسية ستعيد كائن المولد. يمكن للوظيفة أيضًا إجراء مكالمات متعددة للكلمة الأساسية الخاصة بالعائد.

ديف testgen(index): أيام الأسبوع = ["sun"، "mon"، "tue"، "wed"، "thu"، "fri"، "sat"] أيام الأسبوع العائد أيام الأسبوع = testgen(0) print next( day)، التالي (اليوم) #output: sun mon

ما هو __init__.py؟ كيفية استيراد فئة من دليل آخر؟

يُستخدم Init__.py بشكل أساسي لتهيئة حزم Python.

يخبر الملف __init__.py الموجود في الدليل lstm_m مترجم Python أنه يجب التعامل مع هذا الدليل كحزمة Python.

كيفية استيراد فئة من دليل آخر؟

عادةً ما يكون __init__.py هو ملف فارغ. وإذا أردنا استخدام lstm.py في ملف run.py، فيجب استيراده على النحو التالي:

من lstm_m استيراد lstm

بالإضافة إلى ذلك، داخل مجلد الوحدة يجب أن يكون هناك ملف يسمى __init__.py للاستيراد.

ما هي الأنواع المضمنة الموجودة في بايثون؟

هناك أنواع بايثون مدمجة قابلة للتغيير وغير قابلة للتغيير.

للتغيير:

  • القوائم؛
  • الجموع.
  • القواميس.

غير قابل للتغيير:

  • سلاسل.
  • الصفوف.
  • أرقام.

يرجى تذكر أن الأنواع الرئيسية فقط مذكورة أعلاه. في الواقع، هناك أكثر من ستة منهم.

ما هو docstring في بايثون؟

سلسلة وثائق بايثون (docstring) هي طريقة لتوثيق الوظائف والوحدات والفئات. معايير التصميم موجودة على الموقع الرسمي.

كيف يمكنني تحويل رقم إلى سلسلة؟

لتحويل رقم إلى سلسلة، عادةً ما تستخدم الدالة المضمنة str() ، على الرغم من وجود طرق أخرى، مثل "(0:d)".format(number) و"%d"%number. إذا كنت تريد تحويل رقم عشريإلى النظام الثماني (oct - ثماني) أو الست عشري (hex - hexadecimal)، استخدم الدالة المضمنة oct() أو hex() على التوالي.

ما هو الفرق بين Xrange والمدى؟

تقوم الدالة xrange() بإرجاع كائن xrange، بينما تقوم الدالة range() بإرجاع قائمة وتستخدم نفس مقدار الذاكرة، بغض النظر عن حجم الدالة.

كيف يمكنني رؤية أساليب أو سمات الكائن؟

يقوم الأمر dir(x) بإرجاع قائمة مرتبة بأسماء السمات لأي كائن تم تمريره إليه. إذا لم يتم تحديد أي كائنات، تقوم الدالة dir() بإرجاع الأسماء الموجودة في النطاق الحالي.

بالإضافة إلى ذلك

إذا كنت تملك إنجليزي، فإننا نوصي بإجراء اختبارات عبر الإنترنت واختبار معلوماتك قبل المقابلة.

مجموعات من المواد لتعلم بايثون منا: , . قصيرة كذلك. لا تنس حل المشكلات: هنا يمكنك القيام بذلك.

خاتمة

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

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

هنا يمكنك العثور على قائمة تضم أكثر من 100 فكرة مشروع يمكنك تنفيذها. تم تصميم القائمة لـ Python، ولكن يمكن تنفيذ الأفكار بلغات أخرى. أنه يحتوي على مشاريع ليست خطيرة للغاية وتمارين جيدة للممارسة. يوصى بشدة بالقائمة للمبتدئين لقراءتها ومتابعتها.

وستجد هنا قائمة تضم 49 لعبة مستنسخة يمكنك كتابتها. الاختيار يعتمد على مستوى الصعوبة.

هل تريد إنشاء شيء جديد؟ قم بمراجعة Idea Machine وقائمة أمنيات الإنترنت، حيث يقوم الأشخاص بنشر اقتراحات للبرامج التي يرغبون في مشاهدتها.

إذا كنت تريد تمارين عملية، فاتبعها هذه القائمةالمواقع/الموارد:

تمارين عامة:

  • يحتوي مشروع أويلر على أكثر من 500 مسألة رياضية (نظرية الأعداد، وأنظمة الأعداد، وما إلى ذلك) التي تحتاج إلى حل باستخدام البرمجة (بأي لغة).
  • يقوم Code Abbey بتخزين أكثر من 200 مشكلة برمجية. وقد حصل 125 منهم على شهادة لحلولهم، الأمر الذي يحفز العديد من الطلاب.
  • Rosalind هو موقع آخر مشابه لموقع Project Euler، والذي يوفر أكثر من 200 مسألة في مجال المعلوماتية الحيوية للاختيار من بينها.
  • يوفر موقع Codingbat.com تمارين Java وPython لكل من المبرمجين المبتدئين والمتقدمين.
  • codegolf.stackexchange.com هو موقع يتم فيه نشر ومناقشة ألغاز البرمجة.
  • Ruby Quiz عبارة عن سلسلة من الألغاز التي تطلب منك كتابة برامج قصيرة متفاوتة التعقيد. الحلول الأصلية موصوفة في روبي، ولكن يمكن تنفيذها بأي لغة.
  • - مجموعة مختارة من المشاكل المنطقية والبرمجية، كل منها مع تحليل مفصل للحل.

مشاكل أولمبياد البرمجة:

  • UVa Online القاضي عبارة عن مجموعة من مئات المسائل من مسابقات البرمجة، مع نظام عبر الإنترنت للتحقق من الحلول.
  • يحتوي TopCoder على مشاكل خوارزمية معقدة، جمعت على مر السنينمن المسابقات المختلفة . كما يقيم مسابقات برمجية عدة مرات في الشهر.
  • يشبه CodeForces برنامج TopCoder، ولكنه يحتوي على المزيد من تحديات المنافسة وبعض الميزات الخاصة، بما في ذلك "المسابقات الافتراضية".
  • تيموس - نفس UVA. يحتوي على مشاكل من أحدث المسابقات (المستوى العالمي والإقليمي).
  • SPOJ يشبه UVA، مع عدد كبير من لغات البرمجة للاختيار من بينها.
  • تحتوي USACO على العديد من مشاكل الخوارزمية مع تعليمات لحلها.

للغات محددة:

  • للاطلاع على Prolog وLisp واللغات المشابهة، تفضل بزيارة

© 2024 ermake.ru - حول إصلاح أجهزة الكمبيوتر - بوابة المعلومات