اذهب إلى المحتوى

لوحة المتصدرين

  1. Ali Ahmed55

    Ali Ahmed55

    الأعضاء


    • نقاط

      9

    • المساهمات

      1861


  2. Mustafa Suleiman

    Mustafa Suleiman

    الأعضاء


    • نقاط

      8

    • المساهمات

      15370


  3. محمد عاطف17

    محمد عاطف17

    الأعضاء


    • نقاط

      8

    • المساهمات

      5583


  4. ايمن ميلاد

    ايمن ميلاد

    الأعضاء


    • نقاط

      4

    • المساهمات

      304


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 03/17/25 في كل الموقع

  1. السلام عليكم هو اي الفرق مابين sns.shistplot و بين plt.hist من حيث التعامل مع القيمه الinf , -inf ؟
    3 نقاط
  2. السلام عليكم ورحمة الله وبركاته لدي جهاز msigf63 عندما يصل شحن 45% ينطفي لكن عندما يكون في شحن لا ينطفي غيريت بطارية لاب توب ونظفت مرواحه وغيرت معجون لازالت نفس مشكلة ما الحل للعلم لازال صوت مروحه مستمر
    2 نقاط
  3. السلام عليكم هو حفظ الصور بستخدم الداله دي cv2.imwrite() افضل من الداله دي plt.savefig() من حيث جود الصور والدقه ؟
    2 نقاط
  4. السلام عليكم لقد سمعت الكثير من الناس يقولون أنه يجب على كل شخص قبل البدء بتعلم Laravel أن يكون محترف بPHP وأن يكون قد نفذ العديد من المشاريع فيها ويعرف جميع المفاهيم فيها. وقسم آخر من الناس بقول انه لا يلزمك من الPHP سوى ال syntax والأساسيات والOOP وما تبقى الجهد الأكبر يكون في تنفيذ مشاريع Laravel. أريد معرفة أيهم الصحيح وهل علي احتراف php وتنفيذ بعض المشاريع فيها قبل البدء ب laravel أم يكفي معرفة اساسيات الphp مع oop والانتقال فورا لتعلم Laravel وتنفيذ مشاريع بال laravel؟ في الواقع لقد وجدت دورة على اليوتيوب مكونة من 280 فيديو بمجموع 50 ساعة لتعليم pure php وأنا متردد بأخذ الخطوة هل علي البدء بها وإعطائها كل هذا الوقت والجهد أم أنه لا داعي لذلك واترك الوقت والجهد لحين مشاريع laravel؟ علما ان الهدف من تعلم المسار كاملا هو للدخول في سوق العمل ولو بشكل مبدأي وليس الهدف القيام بمشروع جامعي او شغل مؤقت. شكرا لكم.
    2 نقاط
  5. السلام عليكم. لاحظت أن بعض مشاريع next.js تعتمد على express.js في بناء الواجهة الخلفية. ماجدوى هذا الخيار خاصة وأن next.js يوفر خادما. أو بالأحرى إن كان next.js يوفر خادما لماذا يتم اللجوء إلى خادم خارجي وهل ذلك يؤثر قوة التطبيق. أم من الأفضل إستخدام خادم خارجي مع رياكت خاصة بعد التحديثات التي حصلت مؤخرا. شكرا لكم.
    2 نقاط
  6. السلام عليكم ورحمة الله وبركاته لدي مشكلة وهي انه انني ابدأ في تعلم البرمجة واتقدم فعلا ولكن احينا تواجهنني مشاكل فأشرع في التفكير وحل المشكلة لي ساعة او أكثر وبعدها أوقف وأمل واتوقف عن التعلم ثم اعود في اليوم التالي وهاكذا يعني احينا اخطط لدراسة لمدة 6 ساعات فاأدرس ثلاث ساعات وتواجهني مشكلة اخذ في حلها ساعة وبعدها استسلم بسبب اني انسى ان أسأل فا اجلس افكر واحاول واحاول الى ان اكره البرمجة فأتوقف فاكيف اتعامل مع المشكلة كأنها مطب صغير فقط اقف عنده قليلا في طريقي وليس جبل يسد الطريق علي ؟ وأي نصائح لخرى في التعامل مع المشاكل ؟ +أكتشتفت مؤخرا طريقة جميلة في التعامل مع المشكلة وهي ان اضع لها وقت محدد مثلا 30 دقيقة سأحاول حلها ثم اذا لم أستطع أسال او ابحث عن الإجابة
    1 نقطة
  7. كلا الرأيين لهما وجهة نظر صحيحة لكن تختلف حسب ظروف كل شخص، أنا أميل للخيار الأول وهو تعلم الأساسيات وتخصيص أكبر وقت لها ثم الإنتقال لتعلم التقنيات، وذلك لإمتلاك أساس قوي، قدرة على التعامل مع أي مشكلة بدون الاعتماد الكلي على Laravel أو المكتبات، فهم أعمق للمفاهيم والقدرة على تعلم أي تقنية قائمة على PHP. وفي رأي لا يوجد طريق مُختصر في البرمجة، نعم تستطيع تخطي بعض الأمور ودراستها لاحقًا، لكن الأساسيات ومنها اللغة البرمجية لا أنصحك بالتهاون بها، على كل حال ستتمكن من بناء مشاريع بسيطة إلى متوسطة بدون أساس قوي، وفي المشاريع المعقدة أو المشاكل الغير بسيطة ستواجه صعوبة في فهم بعض المفاهيم العميقة أو حل المشكلات. لكن في حال ليس لديك الوقت الكافي وتريد دخول سوق العمل، أو من الأشخاص الذي يملون بسرعة وليس لديهم صبر ولا مشكلة في ذلك، فالخيار الوسط هو الأفضل لك، بمعنى تعلم القدر الكافي من اللغة وهي الأساسيات وOOP ثم الإنتقال لتعلم Laravel وبناء مشاريع من خلاله ثم العودة فيما بعد وتعلم الجزء المتقدم من لغة PHP.
    1 نقطة
  8. لم تجب على السؤال الذي سألتك إياه هل بعد التشغيل تكون مستوى البطارية 0% وهل لا تعمل إلا من خلال الشاحن ؟
    1 نقطة
  9. إذا قمت بتنفيذ الأمر الذي وضحه المدرب مصطفي فإنه سيقوم بإعادة إعدادات الطاقة بأكملها للحالة الإفتراضية ولهذا من الممكن أنه تم تعين القيمة الصحيحة له الآن. يمكنك تجربة الجهاز لديك بدون توصيل الشاحن وانظر هل تظل المشكلة موجودة أم لا.
    1 نقطة
  10. وجدته هكذا لم اغير به شي
    1 نقطة
  11. استخدمه في وضع البطارية وليس الشاحن، ثم تفقد هل حُلت المشكلة أم لا.
    1 نقطة
  12. ماذا افعل بعد تنفيد امر powercfg -restoredefaultschemes هل استخدم جهاز بدون شحن لاعرف هل ينطفي او لا
    1 نقطة
  13. وعليكم السلام ورحمة الله وبركاته. أولا يجب عليك معرفة أن Laravel هو إطار عمل MVC لبناء تطبيقات الويب وهو مبني ويتسخدم لغة PHP . لهذا فإن معرفة أساسيات php على الأقل واجبة لسهولة إستخدام Laravel وفهمه . يوجد بعض الأشخاص الذين يدخلون مباشرة ويتعلمون Laravel دون المرور على PHP وهؤلاء الأشخاص يواجهون صعوبة كبيرة في فهم لارافيل والتعامل معه . نعم يستطيعون بناء مشاريع بسيطة ولكن لن تكون لديهم المعرفة الكاملة و كيفية إستخدام لارافيل بالطريقة الأفضل. بما أنك ذكرت أنك تريد دخول سوق العمل فإن مشاريع لارافيل مطلوبة بكثرة لهذا مذاكرة دورة pure php ستكون مضيعة للوقت لك حيث ستتعلم بالطبع في تلك الدورة بناء مشاريع native php والتي من الممكن إنشاءها بسهولة في لارافيل . لذلك إذا لم ترد أن تعمل ب native php أو تتعامل مع مشاريع وسكريبتات php فقط . فأنصحك بمذاكرة الأساسيات الخاصة ب php و ال OOP الخاصة بها وفهمها جيدا وأيضا ينبغي عليك أثناء تعلم تلك الأساسيات التطبيق بنفسك وبناء ولو مشروع واحد بعد الإنتهاء منها. بعد ذلك يمكنك الدخول وتعلم إطار عمل لارافيل وبناء المشاريع به . ويمكنك بعد بناء مشاريع به أن تعود لمذاكرة PHP حتى تستطيع إتقانها وذلك لتصبح محترفا في لارافيل ينبغي أن تكون محترفا في PHP بالطبع.
    1 نقطة
  14. تلك المشكلة متكررة بالفعل، والعديد من المستخدمين ذكروا نفس مشكلتك، حاول إعادة ضبط إعدادات الطاقة على الويندوز من خلال الأمر التالي في منفذ الأوامر: powercfg -restoredefaultschemes في حال استمرت المشكلة قم بتحديث الـ BIOS، تفقد الإصدار المتاح على موقع الشركة الرسمي لجهازك، ثم تفقد الإصدار لديك، وستجد على اليوتيوب شروحات لذلك. وإن استمرت المشكلة قم بتحديث الـ EC. وكتحذير في حال ليس لديك خبرة بكيفية فعل ذلك من الأفضل تجنب القيام بذلك بنفسك والذهاب إلى شخص مختص. عامًة ستجد شرح هنا: BIOS, EC update and EC reset
    1 نقطة
  15. قمت بتثبيت اضافة Loco Translate لترجمة قالب wp residence ولكنها لا يتم تغيير اي شيء بالموقع جربت الترجمة من لوحة التحكم وحتى قمت باضافة ملف جاهز مترجم ولكن لم ينفع ما المشكلة وما الحل؟
    1 نقطة
  16. لم يحدث شيء بعد تطبيق العمود ID مرفق الجدول وملفات class_user.php و class_db.php class_db.php class_user.php
    1 نقطة
  17. 1 نقطة
  18. إن القيم التي تظهر لك ك -1.000000e+18 لا تعتبر قيمة لانهائية (inf أو -inf) بل هي مجرد قيم عددية كبيرة جدا ولكنها سالبة و هذه القيم تمثل أرقاما محدودة أى يمكن حسابها ولكنها كبيرة جدا من حيث الحجم. أما ال inf الانهائية الموجبة تمثل قيمة أكبر من أي رقم نعرفه و يمكن تمثيله أى أننا لا نعرف ما هو أخر رقم نستطيع الوصول له لهذا سميت بلانهائية. و ال -inf الانهائية السالبة تمثل قيمة أصغر من أي رقم نعرفه و يمكن تمثيله في النظام أى أننا لا نعرف ما هو أقل وأصغر رقم نستطيع الوصول له لهذا سميت بلانهائية سالبة. ويوجد الدالة isinf للتحقق من أن القيمة هي لانهائية أم لا ويمكنك تنفيذ الكود التالي لمعرفة الفرق بين القيمة اللانهائية والرقم الكبير : import numpy as np import pandas as pd print(np.inf) print(np.isinf(np.inf)) print(-1.000000e+18) print(np.isinf(-1.000000e+18)) # ما سيتم طباعته # inf # True # -1e+18 # False
    1 نقطة
  19. تمام جدا الف شكراا جدا لحضرتكم جزاكم الله كل خير طيب القيمه دي تعتبر inf , -inf ID resname resid x_1 y_1 z_1 x_2 \ 0 R1107_1 G 1 -5.499000 8.520000 8.605000 -1.000000e+18 1 R1107_2 G 2 -5.826000 10.453000 14.010000 -1.000000e+18 2 R1107_3 G 3 -5.849000 14.768000 17.584999 -1.000000e+18 3 R1107_4 G 4 -5.784000 19.985001 18.666000 -1.000000e+18 4 R1107_5 G 5 -5.755000 25.533001 17.132999 -1.000000e+18 5 R1107_6 C 6 -6.227000 30.093000 13.965000 -1.000000e+18 6 R1107_7 C 7 -9.016000 37.029999 11.306000 -1.000000e+18 7 R1107_8 A 8 -9.026000 31.554001 8.725000 -1.000000e+18 8 R1107_9 C 9 -13.912000 30.908001 8.347000 -1.000000e+18 9 R1107_10 A 10 -22.273001 33.250999 7.105000 -1.000000e+18 y_2 z_2 x_3 ... z_37 x_38 \ 0 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 1 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 2 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 3 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 4 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 5 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 6 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 7 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 8 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 9 -1.000000e+18 -1.000000e+18 -1.000000e+18 ... -1.000000e+18 -1.000000e+18 y_38 z_38 x_39 y_39 z_39 \ 0 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 1 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 2 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 3 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 4 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 5 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 6 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 7 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 8 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 9 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 -1.000000e+18 x_40 y_40 z_40 0 -1.000000e+18 -1.000000e+18 -1.000000e+18 1 -1.000000e+18 -1.000000e+18 -1.000000e+18 2 -1.000000e+18 -1.000000e+18 -1.000000e+18 3 -1.000000e+18 -1.000000e+18 -1.000000e+18 4 -1.000000e+18 -1.000000e+18 -1.000000e+18 5 -1.000000e+18 -1.000000e+18 -1.000000e+18 6 -1.000000e+18 -1.000000e+18 -1.000000e+18 7 -1.000000e+18 -1.000000e+18 -1.000000e+18 8 -1.000000e+18 -1.000000e+18 -1.000000e+18 9 -1.000000e+18 -1.000000e+18 -1.000000e+18 [10 rows x 123 columns]
    1 نقطة
  20. وعليكم السلام ورحمة الله وبركاته. الفرق الرئيسي بين sns.histplot و plt.hist ينقسم كالتالي أولاً sns.histplot (من مكتبة Seaborn) يتعامل مع القيم اللانهائية بشكل أفضل وأكثر مرونة يتجاهل القيم inf و -inf تلقائيًا عند رسم المخطط لا يسبب خطأ عند وجود هذه القيم في البيانات بينما plt.hist (من مكتبة Matplotlib) يحاول تضمين القيم اللانهائية في المخطط قد يؤدي إلى أخطاء أو مخططات غير مفيدة عند وجود قيم inf أو -inf ولذلك عند التعامل مع بيانات تحتوي على قيم لانهائية، يُفضل استخدام sns.histplot أو معالجة البيانات مسبقًا لإزالة هذه القيم قبل استخدام plt.hist.
    1 نقطة
  21. ببساطة الأمر يعتمد على مدى تعقيد المشروع، ففي حال المشروع يتطلب تخصيص ومُعقد إذن إنشاء واجهة خلفية منفصلة هو الحل، بينما في أغلب الأحوال المشاريع متوسطة وتتمحور أكثر نحو الواجهة الأمامية وتستخدم الواجهة الخلفية في Next.js كما هي. فالخادم المدمج في Next.js محدود في خيارات التخصيص، ولو أردت التحكم الكامل في الـ Routing أو معالجة الطلبات أو إضافة Middleware معقدة، فستحتاج إلى Express.js أو غيره للحصول على مرونة أكبر. أو في حال وجود مشروع قائم يعتمد على Express.js بالفعل، فمن الأسهل دمج Next.js معه بدلاً من إعادة كتابة كل شيء ليتناسب مع الـ API Routes في Next.js. ستجد تفصيل هنا:
    1 نقطة
  22. وعليكم السلام ورحمة الله وبركاته. الفرق الرئيسي بين sns.histplot من مكتبة seaborn و plt.hist من مكتبة matplotlib في التعامل مع القيم اللانهائية (inf و -inf) يكمن في كيفية معالجة هذه القيم عند التعامل مع الرسوم البيانية. حيث في plt.hist من مكتبة matplotlib لا يتعامل بشكل خاص مع القيم اللانهائية inf و -inf. إذا كانت البيانات تحتوي على هذه القيم فمن الممكن أن يحدث الخطأ التالي :ValueError: range parameter must be finite لانها لا تستطيع التعامل مع القيم اللانهائية إفتراضيا . أما sns.histplot من مكتبة seaborn فهي تتعامل بشكل أفضل مع القيم اللانهائية.حيث إذا كانت البيانات تحتوي على inf أو -inf فسيتم استبعادها تلقائيا من الرسم البياني دون أن تؤثر على بقية البيانات.
    1 نقطة
  23. plt.hist من مكتبة Matplotlib ترسم الهيستوغرام حسب البيانات التي تُمرر إليها مباشرة، ولو البيانات تحتوي على قيم inf أو -inf، فإن plt.hist ستفشل وترمي خطأ ValueError لأنها لا تستطيع التعامل مع تلك القيم غير المحدودة بشكل افتراضي، وستحتاج إلى تنظيف البيانات يدويًا قبل تمريرها من خلال استبعاد inf و-inf باستخدام numpy بواسطة np.isfinite. أما sns.histplot من مكتبة Seaborn فهي تعتمد على مكتبة Matplotlib ولكنها توفر طبقة إضافية من المعالجة التلقائية للبيانات، فبشكل افتراضي، sns.histplot تتعامل مع القيم inf و-inf عن طريق تجاهلها بمعنى أنها تستبعد القيم تلقائيًا من الرسم دون رمي خطأ، وذلك بفضل الاعتماد على مكتبة numpy وpandas في المعالجة الداخلية، بالتالي أكثر مرونة عند التعامل مع بيانات غير نظيفة مقارنة بـ plt.hist.
    1 نقطة
  24. السلام عليكم هو اي الفرق مابين CV2 - CV ؟
    1 نقطة
  25. cv2 مبنية على واجهة C++، بالتالي هي أسرع وأكثر كفاءة مقارنةً بالواجهة القديمة cv التي كانت تعتمد على C، وتوفير دعم التسريع عبر GPU من خلال CUDA لزيادة الأداء في المهام كثيفة الحسابات كمعالجة الفيديو أو التعلم العميق. والميثودز في cv2 البعض منها بأسماء مختلفة عن تلك الموجودة في cv، فمثلاً في cv يوجد cv.Canny() للكشف عن الحواف، بينما في cv2 يوجد cv2.Canny() بنفس الوظيفة ولكن مع تحسينات ومعاملات إضافية. أيضًا الواجهة cv تحتوي على دوال مثل cv.LoadImage() أو cv.CreateMat()، وهي تعتمد على هياكل بيانات قديمة مثل IplImage. بينما الواجهة الحديثة cv2 تستخدم مصفوفات NumPy مباشرة مثل cv2.imread() لتحميل صورة ولا تتطلب تحويلات معقدة بين هياكل البيانات، أيضًا متكاملة مع مكتبة SciPy. import cv2 img = cv2.imread("image.jpg") edges = cv2.Canny(img, 100, 200) أما باقي الدوال في cv2 لها أسماء مشابهة لتلك في cv ولكن مع تحسينات كدعم المزيد من المعاملات أو إرجاع قيم مختلفة. وبالطبع تم توفيز مزايا جديدة لم تكن متوفرة في CV منها cv2.bilateralFilter() لتنعيم الصور مع الحفاظ على الحواف وخوارزميات مثل SIFT وSURF للكشف عن النقاط المميزة.
    1 نقطة
  26. الاختيار بين دالة cv2.imwrite() ودالة plt.savefig() يعتمد على سياق استخدامك وجودة الصورة التي ترغب في حفظها. حيث دالة cv2.imwrite() هي الأنسب عند العمل مع معالجة الصور باستخدام OpenCV وتدعم تنسيقات صور متنوعة مثل JPEG و PNG و TIFF وغيرها. وعند حفظ الصور باستخدام cv2.imwrite()، يمكنك تحديد المعاملات الخاصة بالضغط وجودة الصورة مثل quality في JPEG للحصول على صورة بدقة أعلى أو منخفضة حسب الحاجة حيث يوفر لك OpenCV تحكما أكبر في دقة الصورة وجودتها أثناء الحفظ. ويفضل استخدام cv2.imwrite() إذا كانت الصورة هي عبارة عن مصفوفة Numpy. أما savefig() نستخدمها بشكل رئيسي لحفظ الرسوم البيانية أو المخططات التي يتم إنشاؤها باستخدام Matplotlib ورغم أنها تدعم أيضا تنسيقات صور مختلفة مثل PNG وJPEG وPDF وSVG إلا أنها تركز أكثر على الرسوم البيانية والتخطيطات البيانية ولا توفر نفس مستوى التحكم في معالجة الصور كما في OpenCV.
    1 نقطة
  27. cv2.imwrite() خاصة بمعالجة الصور في مكتبة OpenCV، وذلك لحفظها كملفات صور بصيغ (JPG، PNG) مباشرة من مصفوفات NumPy التي تمثل الصورة، وتُركز على كفاءة حفظ الصور مع دعم ضغط اختياري، أي تستطيع تمرير صيغة JPG، للتحكم في الجودة باستخدام المعامل cv2.IMWRITE_JPEG_QUALITY وتحديد قيمة من 0 إلى 100، حيث 100 تعني أعلى جودة. أو صيغة PNG، للضغط بدون فقدان في الجودة lossless compression من خلال معامل cv2.IMWRITE_PNG_COMPRESSION. بينما plt.savefig() هي من مكتبة Matplotlib لحفظ المخططات أو الرسوم البيانية كالرسومات التخطيطية أو الصور المعروضة باستخدام plt.imshow()، أي تتعامل مع الرسومات ثنائية الأبعاد وتحويلها إلى صور أو ملفات متجهة (PDF أو SVG) تحافظ على التفاصيل عند التكبير مع خيارات تحكم في الدقة. بالتالي الاستخدام المُختلف ولا يصح المقارنة بينهم.
    1 نقطة
  28. تمام جدا الف شكراا جدا لحضرتك جزاك الله كل خير
    1 نقطة
  29. وعليكم السلام ورحمة الله وبركاته. الفرق بين CV2 و CV هما الإصدار الخاص بكل منهما . فإن الإصدار القديم من المكتبة هو CV ولكن حاليا CV2 هي النسخة الحديثةمن مكبتة opencv حيث مع إطلاق OpenCV 2،تم إعادة هيكلة المكتبة بالكامل وتم تقديم واجهة برمجية جديدة تعتمد على Python و NumPy. حيث تتوافق cv2 مع NumPy مما يجعلها تستخدم مصفوفات NumPy ويوفر لك مرونة وسهولة في التعامل مع البيانات. وأيضا تحتوي على وظائف جديدة ومحسنة مقارنة بـ cv. إذن، CV2 هو النسخة الأحدث من CV
    1 نقطة
  30. السلام عليكم ورحمه الله وبركاته كل كم شهر باحدث محتوى الدورة وهل بس بتم إضافة كورسات جديدة ولا المحتوى ممكن تغيرو؟ وأغلب الطلاب في هذه الدورة كم المدة الي بنهو فيها الكورس كامل؟
    1 نقطة
  31. وعليكم السلام ورحمة الله وبركاته. يتم تحديث الدورة دائما بناء على متطلبات سوق العمل والتقنيات التي تتحدث بإستمرات أو التقنيات الجديدة التي يتم نشرها . يتم دائما تحديث محتوى المسار إذا أصبح قديما و تم إصدار نسخ جديدة من التقنيات المستخدمة فيه فمثلا كما في دورة php كان يتم شرح إطار عمل لارافيل 8 ومن ثم تم التحديث المحتوى ليتم شرح إصدار 9 ثم إصدار 10 وهكذا .وقد تم منذ عدة أيام تحديث عدة مسارات في بعض الدورات الموجودة. ونعم يتم إضافة مسار جديدة دائما إذا دعت الحاجة وذلك ليتم مواكبة سوق العمل .فمنذ يومين تم إضافة مسار "تطبيقات عملية باستخدام المحولات" في دورة الذكاء الاصطناعي وأيضا في نهاية السنة السابقة تم إضافة عدة مسارات في بعض الدورات مثل مسار "أساسيات TypeScript" في دورة JavaScript و إضافة مسار "تصميم البرمجيات Refactoring" في دورة علوم الحاسوب وهكذا . ويمكنكِ متابعة أخر التحديثات على جميع الدورات من خلال الرابط التالي : https://academy.hsoub.com/release-notes/ أما بخصوص إنهاء مدرة الدورة فهذا الأمر يختلف من طالب إلى أخر وأيضا يختلف بناء على مدى تفرغك و مدة ساعات التعلم يوميا لكِ . وستجدين في وصف الدورة مدة ساعات الفيديوهات في تلك الدورة وما هو عدد الساعات التي ستأخذينها فيها فمثلا في دورة تطوير واجهات الاستخدام التي تأتي بإجمالي 72 ساعة فيديو، يمكنكِ إضافة إليها المدة المستغرقة في التطبيق أو الاستيعاب أو المناقشة أو ما الى ذلك ولنقدر ذلك بـ 5 أضعاف اجمالي المدة فتكون 360 ساعة. فيكون الوقت الإجمالي للإنتهاء من الدورة هو: أربع ساعات يوميا لمدة 3 أشهر. (4 * 3 * 30) ساعتان يوميا لمدة 6 أشهر. (2 * 30 * 6) ساعة يوميا لمدة 12 شهر. (1 * 30 * 12) وهذا كمتوسط فقط فكما وضحت لكِ الإستياعت يختلف من شخص إلى الآخر ويمكنكِ قراءة الإجابة التالية لمزيد من التفاصيل:
    1 نقطة
  32. ليس كل ذلك، اختر واحد فقط من التالي: بيان درجات لآخر سنة دراسية / فصل دراسي بمعنى ترم أو شهادة القيد أو صورة من كارنيه الكلية (في حال لم تتمكن من استخراج بيان الدرجات بعد) بالإضافة إلى ما سبق، يجب تقديم صورة بطاقة الرقم القومي.
    1 نقطة
  33. إذا كنت من محبي لغة البرمجة بايثون وترغب في تعلمها واحترافها وتبحث عن اكواد مشاريع بايثون فهذا المقال سيوفر لك مجموعة متنوعة من مشاريع بايثون للمبتدئين الذين أنهوا تعلم أساسيات لغة بايثون ويرغبون في تعزيز معرفتهم بالتطبيق العملي والتدرب على طريقة التفكير في حل مشكلات برمجية مختلفة والاستفادة من الوحدات والمكتبات العديدة التي توفرها لغة بايثون المناسبة التي تساعد على حلها بسلاسة وسرعة. سنوفر لك الأكواد البرمجية لهذه المشاريع، لكن الأفضل قبل أن تطلع على أكواد المشاريع أن تفكر في طريقة حل كل مشروع منها وتبحث عن المكتبات المساعدة لحله وطريقة استخدامها، كما يفضل أن تقوم بكتابة كافة الأكواد بنفسك وتعمل على تحسينها وإضافة أفكار جديدة لها والتدرب على تصحيح أي أخطاء تظهر لك خلال التنفيذ، فهذا يساعدك على تحقيق الهدف من المقال بشكل أفضل. أهمية تنفيذ مشاريع بايثون للمبتدئين لاشك أن تطبيق مشاريع عملية خطوة ضرورية لأي مبرمج أنهى تعلم أساسيات لغة البرمجة وفهم أهم مبادئ البرمجة بشكل نظري، فبعد أن تنهي تعلم أساسيات لغة بايثون يمكنك البدء بتنفيذ أفكار مشاريع بسيطة تطبق من خلالها ما تعلمته من مفاهيم نظرية وتصقل مهاراتك البرمجية من خلال التعلم من الأخطاء التي تواجهها وتعمل على تصحيحها، فمهما قرأت من دروس وكتب وشاهدت من مقاطع فيديو فلن تتقن ما تتعلمه إذا لم تطبق ما تتعلمه على مشاريع فعلية. ستجد في الفقرات التالية عدة أفكار لمشاريع بايثون مختلفة بعضها غاية في البساطة وبعدها أصعب قليلًا كي تتعلم من خلالها تنفيذ بعض العمليات الرياضية ومعالجة النصوص والتعامل مع عناصر الواجهة الرسومية واستخراج بيانات الويب، وهذه المشاريع هي: مشروع آلة حاسبة بلغة بايثون. مشروع بايثون لطباعة سلسلة أعداد فيبوناتشي. مشروع التحقق من قوة كلمة المرور. مشروع حساب عدد الأحرف الصوتية والفراغات والكلمات في نص. مشروع حاسبة الزكاة. مشروع حل معادلة درجة ثانية ورسم خطها البياني. مشروع ساعة رقمية. مشروع استخراج بيانات من موقع ويب. سنتناول في فقراتنا التالية كل مشروع من مشاريع بايثون المذكورة في هذه القائمة ونشرح الهدف منه ونوضح ما هي مدخلاته ومخرجاته وأهم خطوات تنفيذه برمجيًا. مشروع آلة حاسبة بلغة بايثون يعد مشروع تنفيذ الآلة الحاسبة من خلال واجهة سطر الأوامر أحد مشاريع بايثون البسيطة التي يمكنك من خلالها تطبيق العديد من المفاهيم مثل تعريف المتغيرات وتخزين القيم فيها، والتعامل مع أنواع البيانات المختلفة في بايثون مثل الأرقام الصحيحة والأرقام العشرية، وكيفية طلب البيانات من المستخدم وقراءتها وتحويلها لقيم عددية، وتعريف دوال لتنفيذ العمليات الحسابية واستخدام العبارات الشرطية لاستدعاء وتنفيذ الدالة الحسابية الصحيحة بناءً على شروط معينة وهذه المفاهيم على بساطتها تمكنك من كتابة مشاريع بايثون أكثر تعقيدًا فيما بعد. الدخل: رمز العملية الحسابية المطلوب إجراؤها والعددان المطلوب تنفيذ العملية عليهما (يجب أن يدخل المستخدم رمز صحيح وإلا يمكن أن تعرض له رسالة تطلب منه إدخال رمز صحيح أو تنهي البرنامج) الخرج: هو طباعة نتيجة العملية الحسابية. كود مشروع آلة حاسبة باستخدام بايثون: # calculator1.py # دالة جمع عددين def add(num1, num2): return num1 + num2 # دالة طرح عددين def subtract(num1, num2): return num1 - num2 # دالة جداء عددين def multiplnum2(num1, num2): return num1 * num2 # دالة قسمة عددين def divide(num1, num2): if num2 == 0: return "لا يمكنك القسمة على صفر" return num1 / num2 # استدعاء الدالة المناسبة print("اختر العملية الحسابيةالمطلوبة ") print("للجمع اختر 1 ") print("للطرح اختر 2 ") print("للجداء اختر 3 ") print("للقسمة اختر 4 ") print("اختر أي مفتاح آخر لأنهاء التنفيذ") while True: # إدخال قيمة العددين choice = input("حدد العملية المطلوبة (1/2/3/4): ") if choice in ("1", "2", "3", "4"): num1 = float(input("Enter first number: ")) num2 = float(input("Enter second number: ")) if choice == "1": print(num1, "+", num2, "=", add(num1, num2)) elif choice == "2": print(num1, "-", num2, "=", subtract(num1, num2)) elif choice == "3": print(num1, "*", num2, "=", multiplnum2(num1, num2)) elif choice == "4": print(num1, "/", num2, "=", divide(num1, num2)) else: print("إنهاء التنفيذ ") break عند تنفيذ المشروع سنحصل على خرج مشابه لما هو مبين في الصورة التالية: يمكنك إجراء بعض التحسينات على الكود السابق كأن تنشئ مكتبة أو وحدة خاصة بك لتعريف الدوال الحسابية وليكن اسمها math_operations.py ثم تستوردها في ملف البرنامج الرئيسي لتفهم الغرض من مكتبات باثيون فعندما تستورد مكتبة بايثون ستتمكن من الوصول لكافة وظائفها العامة وهذا ينظم كود مشروعك ويسهل فهمه وصيانته. لاحظ الكود التالي عرفنا في البداية ملف باسم math_operations.py يمثل المكتبة ويتضمن تعريف كافة العمليات الحسابية. # math_operations.py # استيراد المكتبة import math_op # استدعاء الدالة المناسبة print("اختر العملية الحسابيةالمطلوبة ") print("للجمع اختر 1 ") print("للطرح اختر 2 ") print("للجداء اختر 3 ") print("للقسمة اختر 4 ") print("اختر أي مفتاح آخر لأنهاء التنفيذ") while True: # إدخال قيمة العددين choice = input("حدد العملية المطلوبة (1/2/3/4): ") if choice in ("1", "2", "3", "4"): num1 = float(input("أدخل العدد الأول ")) num2 = float(input("أدخل العدد الثاني ")) if choice == "1": print(num1, "+", num2, "=", math_op.add(num1, num2)) elif choice == "2": print(num1, "-", num2, "=", math_op.subtract(num1, num2)) elif choice == "3": print(num1, "*", num2, "=", math_op.multiplnum2(num1, num2)) elif choice == "4": print(num1, "/", num2, "=", math_op.divide(num1, num2)) else: print("إنهاء التنفيذ ") break ثم عرفنا ملف المشروع الأساسي calculator2.py الذي يستورد المكتبة ويستخدم وظائفها كما يلي: # calculator2.py # استيراد المكتبة import math_op # استدعاء الدالة المناسبة print("اختر العملية الحسابيةالمطلوبة ") print("للجمع اختر 1 ") print("للطرح اختر 2 ") print("للجداء اختر 3 ") print("للقسمة اختر 4 ") print("اختر أي مفتاح آخر لأنهاء التنفيذ") while True: # إدخال قيمة العددين choice = input("حدد العملية المطلوبة (1/2/3/4): ") if choice in ("1", "2", "3", "4"): num1 = float(input("أدخل العدد الأول ")) num2 = float(input("أدخل العدد الثاني ")) if choice == "1": print(num1, "+", num2, "=", math_op.add(num1, num2)) elif choice == "2": print(num1, "-", num2, "=", math_op.subtract(num1, num2)) elif choice == "3": print(num1, "*", num2, "=", math_op.multiplnum2(num1, num2)) elif choice == "4": print(num1, "/", num2, "=", math_op.divide(num1, num2)) else: print("إنهاء التنفيذ ") break لتنفيذ هذا المشروع بشكل صحيح يجب أن تحفظ كل من ملف المشروع الرئيسي calculator2.py وملف المكتبة التي عرفتها math_op.py في نفس المجلد. توصيات حول المشروع: جرب أن تضيف المزيد من التحسينات على هذا المشروع بأن تعرف دوال رياضية مثل دالة حساب رفع عدد لأس، أو حساب الجذر التربيعي لعدد ما، وجرب كذلك أن تحوله إلى مشروع واجهة رسومية بالاعتماد على مكتبات بايثون المناسبة. دورة تطوير التطبيقات باستخدام لغة Python احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة اشترك الآن مشروع بايثون لطباعة سلسلة أعداد فيبوناتشي يعد مشروع طباعة سلسلة أعداد فيبوناتشي Fibonacci series على بساطته من مشاريع بايثون الكلاسيكية للمبتدئين فهي تعلمه كيف يفكر منطقيًا في الخطوات اللازمة لحساب وطباعة سلسلة أعداد فيبوناتشي وكتابة دالة برمجية مناسبة تحقق له المطلوب. سلسلة فيبوناتشي هي عبارة عن سلسلة من الأعداد تبدأ بالعددين 0 و 1 والأعداد التالية ناتجة عن مجموع العددين السابقين، أي تكون أرقام السلسلة على النحو التالي: F(0) = 0 F(1) = 1 F(2) = 0+1=1 F(3) = 1+1=2 F(3) = 2+1=3 F(n) = F(n-1) + F(n-2) (n > 1) وهذه السلسلة لها تطبيقات واسعة في الرياضيات وعلوم الحاسوب والهندسة وغيرها من المجالات. الدخل: عدد عناصر السلسلة المطلوب حسابها وليكن num. الخرج: طباعة عناصر السلسلة. هناك طريقتان يمكنك من خلالهما تنفيذ هذا البرنامج، الأولى باستخدام حلقات التكرار (Loops) في بايثون والثانية باستخدام مفهوم التعاود (Recursion)، سنكتب الكود البرمجي لمشروع بايثون يعرض سلسلة أعداد فيبوناتشي بطريقة التعاود كما يلي: #fibonacci-series.py # سلسلة أعداد فيبوناتشي def fibonacci(n): if n == 1 or n == 0: return n; else: return fibonacci(n-2) + fibonacci(n - 1) num = int(input("أدخل عددًا صحيحًا موجبًا ")) if num < 0: print("العدد الذي أدخلته سالب") i = 0 print("سلسلة أعداد فيبوناتشي \n: ") for i in range(0, num+1): print("F(", i, "):", fibonacci(i)) عند تنفيذ المشروع نحصل على الخرج التالي: جرب تنفيذ المشروع باستخدام إحدى الحلقات التكرارية في بايثون ونفذه على قيم دخل كبيرة وقارن سرعة الحل بين طريقة حلقات التكرار وطريقة التعاود واستنتج أيهما أسرع وأكثر كفاءة. مشروع التحقق من قوة كلمة المرور ستحتاج في الكثير من مشاريع بايثون لا سيما في مواقع وتطبيقات الويب التي تحتاج لتسجيل دخول المستخدمين إلى التحقق من قوة كلمة المرور التي يدخلها المستخدم لضمان أمانه وحماية حسابه من الاختراق، وفي هذا المشروع سنكتب الكود البرمجي اللازم لفحص كلمة مرور المستخدم وتحديد فيما إذا كانت كلمة المرور قوية أم ضعيفة بناءً على مجموعة من الشروط وهي كالتالي: يجب أن تحتوي كلمة المرور على حروف صغيرة (a-z). يجب أن تحتوي كلمة المرور على حروف كبيرة (A-Z). يجب أن تحتوي كلمة المرور على محارف خاصة (!@#$^%). يجب أن تحتوي كلمة المرور على أرقام (0-9). يجب أن لا يقل طول الكلمة عن 8 محارف ولا يزيد على 20 محرف إذا توفرت جميع هذه الشروط في كلمة المرور التي أدخلها المستخدم سنعتبرها كلمة مرور قوية وإذا لم تتوفر جميع الشروط سنعتبرها كلمة ضعيفة ونطلب منه إدخال كلمة أخرى. أسهل طريقة لتحقيق هذا المشروع هي باستخدام مفهوم التعابير النمطية في البرمجة regular expression والمعروفة اختصارًا باسم Regex، فمن خلالها يمكن تعريف نمط بحث للتحقق من قوة كلمة المرور بالشكل التالي: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*``#?&])[A-Za-z\d@$!#%*?&]{6,20}$ يفحص هذا التعبير النمطي قوة كلمة المرور حيث يبدأ بالرمز ^ الذي يعني أن الاختبار يجب أن يبدأ من بداية كلمة المرور وبعدها يليه (?=.*[a-z]) الذي يتحقق من وجود حرف صغير على الأقل في كلمة المرور ثم القسم (?=.*[A-Z]) الذي يتحقق من وجود حرف كبير على الأقل في كلمة المرور ثم (?=.*\d) الذي يتأكد من وجود رقم واحد على الأقل فيها والقسم (?=.*[@$!%*#?&]) للتأكد من وجود محرف خاص على الأقل في كلمة المرور والقسم [A-Za-z\d@$!#%*?&]{6,20} للتحقق من أن طول كلمة المرور بين 8 إلى 20 محرف وأنهينا التعبير النمطي بكتابة الرمز $ الذي يعني أن الاختبار يستمر حتى نهاية كلمة المرور. وللتحقق من مطابقة كلمة المرور لهذا النمط في مشروعنا سنعتمد على مكتبة بايثون المسماة re وهي مكتبة قياسية في بايثون تساعدك على تعريف التعابير النمطية والتحقق من مطابقة سلسلة ما لنمط معين. الدخل: كلمة المرور المطلوب فحصها. الخرج: طباعة رسالة تظهر فيما إذا كانت كلمة المرور قوية أم ضعيفة. مشروع بايثون للتحقق من قوة كلمة المرور: import re def is_strong_password(pwd): pattern = '^[a-z]+[A-Z]+[!@#$^%]+[0-9]+$' return bool(re.search(pattern, pwd)) while True: password = input("أدخل كلمة المرور: ") if is_strong_password(password): print("كلمة المرور قوية") break else: print("\nكلمة المرور ضعيفة، أدخل واحدة أخرى") عند تنفيذ الكود أعلاه سنحصل على خرج مشابه للصورة التالية: توصيات حول المشروع: قد تبدو كتابة التعابير النمطية صعبة قليلًا لكنها الطريقة المثلى لتنفيذ التحقق، فهي تختصر عليك الكثير من الوقت، جرب على سبيل المثال التحقق من قوة كلمة المرور وفق الشروط التي ذكرناها دون الاعتماد على التعابير النمطية ولاحظ كمية التعليمات الشرطية التي ستحتاجها لتنفيذ المشروع. وحاول فكرة تعديل المشروع لجعله يولد لك كلمة مرور قوية بشكل تلقائي بدل إنشائها يدويًا. مشروع حساب عدد الأحرف الصوتية والفراغات والكلمات في نص يحتاج أي مبتدئ إلى تنفيذ عدة مشاريع بايثون تعالج السلاسل النصية وتستخدم دوال النصوص المناسبة للحصول على النتائج المطلوبة، في هذا المشروع سنكتب كود بايثون يطلب من المستخدم إدخال نص معين باللغة الإنجليزية ونحسب عدد الأحرف الصوتية الواردة فيه وعدد فراغاته وعدد كلماته. بالنسبة للأحرف الصوتية فهي كما خمسة حروف a وe i و o و u ويجب أن تراعي وجود الأحرف الصغيرة والكبيرة أو يمكنك بشكل بديل تحويل النص المدخل من قبل المستخدم بالكامل إلى حروف صغيرة أو كبيرة لتسهيل عملية البحث. أما بالنسبة للفراغات فيمكن أن تتحقق من وجود فراغ في نص ما بسهولة باستخدام الدالة الجاهزة isspaceو ويمكن كذلك حساب عدد الكلمات بعدة طرق ومن أسهل هذه الطرق الاستعانة بالدالة split التي تقسم الجملة إلى كلمات باستخدام الفراغ كفاصل وتعيد قائمة List بكافة هذه الكلمات وبعدها نستخدم الدالة len التي تعيد لنا عدد عناصر هذه القائمة. الدخل: هو النص المطلوب البحث فيه الخرج: عدد الأحرف الصوتية والفراغات والكلمات في هذا النص. إليك كود بايثون لحساب الأحرف الصوتية والفراغات وعدد الكلمات في سلسلة نصية ويمكنك بالطبع تجربة طرق أخرى للحصول على النتائج المطلوبة. # حساب عدد الفراغات والكلمات والأحرف الصوتية في سلسلة نصية countv=0 countw=0 counts=0 input_sentence=input("أدخل النص هنا: ") # عدد الأحرف الصوتية والفراغات sentence=input_sentence.lower() vowles=["a","e","i","o","u"] for char in sentence: if char in vowles: countv=countv+1 if(char.isspace()): counts=counts+1 # عدد الكلمات countw = len(input_sentence.split()) # طباعة النتائج print(" عدد الأحرف الصوتية :", countv) print(" عدد الكلمات :", countw) print(" عدد الفراغات :", counts) عند تنفيذ البرنامج على السلسلة النصية "Learn PYTHON with Welcome to Hsoub Academy" نحصل على الخرج التالي: توصيات حول المشروع: فكر في طرق أخرى لاستخراج النتائج المطلوبة من سلسلة نصية، وحاول تحويل المشروع من مشروع سطر الأوامر إلى مشروع واجهة رسومية لسهولة الاستخدام. مشروع حاسبة الزكاة يعرض هذا المشروع واجهة رسومية لحساب زكاة المال حيث يطلب من المستخدم إدخال قيمة أمواله كي يحسب الزكاة المستحقة بناءً على القيمة المدخلة فإذا كانت قيمة المال الذي حال عليه الحول تفوق النصاب أي الحد الأدنى للثروة التي يجب عليها الزكاة وجل دفع زكاة مال تبلغ 2.5% من قيمة المال وإلا فلا يتوجب دفع الزكاة أي أن قيمة الزكاة تكون صفر، وقد افترضنا هنا أن قيمة النصاب هي 442 دولار بحسب هيئة الإغاثة الإسلامية العالمية. بالطبع قيمة النصاب المستخدمة هنا ليست ثابتة وهي تتغير بحسب سعر الذهب أو الفضة وحساب المبلغ الدقيق للزكاة يعتمد على العديد من العوامل التي يجب أخذها بالحسبان، لكن الهدف من مشروعنا البسيط هذا هي تعلم إنشاء مشاريع بايثون من خلال واجهة رسومية، وأسهل طريقة لبناء واجهة المستخدم الرسومية هو تعلم طريقة بناء واجهات مستخدم رسومية في بايثون باستخدام المكتبة Tkinter فهي مكتبة قياسية وسهلة الاستخدام وتتيح لك إنشاء نوافذ وأزرار وحقول إدخال وغيرها من عناصر واجهة المستخدم بسرعة ومرونة كبيرة. الدخل: قيمة المال المطلوب حساب زكاته، وفي حال أدخل المستخدم قيمة أموال غير صحيحة كأن يدخل نصًا بدلاً من رقم يجب أن تظهر له رسالة خطأ تطالبه بإدخال قيمة صحيحة. الخرج: عرض قيمة الزكاة المستحقة للمال إذا تجاوز النصاب. إليك مشروع بايثون لحساب مقدار زكاة المال: # مشروع بايثون لحساب زكاة المال from tkinter import * from tkinter import messagebox # إنشاء واجهة المستخدم window = Tk() window.geometry("600x350") window.resizable(0, 0) window.config(bg="lightblue") window.title("حاسبة زكاة المال") # نصاب الزكاة بالدولار nisab = 442 # إنشاء متغير لتخزين قيمة أموالك money = DoubleVar() # دالة حساب الزكاة def calculate_zakat(): try: money = float(money_entry.get()) zakat_amount = money * 0.025 if money > nisab else 0 result_label.config( text=f"قيمة الزكاة الواجبة عليك هي: {zakat_amount:.2f} دولار" ) except ValueError: messagebox.showerror("خطأ", "الرجاء إدخال قيمة صالحة.") Label( window, text="أدخل قيمة أموالك بالدولار", font="Tahoma 14", fg="gray", justify="right", ).place(x=200, y=20) money_entry = Entry(window, textvariable=money, font="tahomab 12") money_entry.place(x=200, y=70) # إنشاء زر الحساب calculate_button = Button( window, text="حساب الزكاة", font="tahoma 14 bold", bg="lightgreen", padx=2, command=calculate_zakat, justify="right", ) calculate_button.place(x=220, y=120) # إنشاء تسمية لعرض النتيجة result_label = Label( window, text="", font="tahoma 14 bold", bg="lightblue", justify="right" ) result_label.place(x=100, y=180) window.mainloop() عند تنفيذ الكود السابق سيظهر الخرج كما في الصورة التالية: توصيات حول المشروع: جرب أن تحسن مظهر الواجهة الرسومية للمشروع من خلال استخدام مكتبة أخرى غير tkinter لتصميم الواجهة الرسومية للمشروع فهناك مكتبات أكثر احترافية مثل مكتبة PyQt5 أو Kivy. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن مشروع ساعة رقمية يهدف هذا المشروع من مشاريع باثيون Python للمبتدئين إلى تعليم المبرمج المبتدئ لكيفية إنشاء تطبيق جهة رسومية يعرض لك التوقيت المحلي والتوقيت العالمي GMT بالاستفادة من مكتبات بايثون المساعدة كما وكيفية تحديث الواجهة الرسومية كل ثانية لتحديث الساعة وجعلها تظهر لنا الوقت الحالي بدقة. يمكن تحقيق المشروع المطلوب من خلال إنشاء واجهة رسومية بسيطو باستخدام المكتبة القياسية tkinter والمكتبة القياسية time للوصول إلى معلومات الوقت وتنسيقه بالشكل المناسب. الدخل: لا يحتاج المشروع للحصول على أي مدخلات من المستخدم الخرج: عرض الساعة بالتوقيت المحلي والعالمي وتنسيقها بالشكل المطلوب # مشروع بايثون لعرض التوقيت المحلي والعالمي # digital-clock.py # استيراد الوحدات المطلوبة from tkinter import * from time import strftime, gmtime,localtime # إنشاء نافذة رئيسية window = Tk() window.title("مشروع بايثون لعرض التوقيت المحلي والعالمي") window.configure(background="lavender") #إنشاء نافذة بأبعاد ثابتة window.geometry("510x250") window.resizable(False, False) # تعريف دالة تعيد لناالتوقيت المحلي والعالمي def get_time(): # توقيت GMT # %I نظام 12 ساعة # %M الدقائق # %S الثواني # %p تعرض AM / PM timeFormat1 = strftime("%I:%M:%S %p", gmtime()) clock_g.config(text="GMT: " + timeFormat1) # توقيت محلي بتنسيق 12 ساعة timeFormat2 = strftime("%I:%M:%S %p",localtime()) clock_l.config(text="LOC: " + timeFormat2) # جدولة تكرار استدعاء الدالة كل 1000 ميلي ثانية window.after(1000, get_time) clock_l = Label(window, font="Verdana 37 bold", pady=30, bg="lavender") clock_l.pack(side=TOP) clock_g = Label(window, font="Verdana 37 bold", pady=30, bg="pink") clock_g.pack(side=BOTTOM) # استدعاء دالة عرض الوقت get_time() # تشغيل النافذة الرئيسية mainloop() عند تنفيذ المشروع ستظهر لك الواجهة التالية التي تعرض الساعة بالتوقيت المحلي وبتوقيت غرينتش توصيات حول المشروع: جرب تطوير مشروع بايثون الحالي واعرض الوقت وكذلك التاريخ بتنسيقات مختلفة وجرب استخدام مكتبات بايثون أخرى للتعامل مع الوقت مثل الوحدة datetime وتعرف على الفرق بينها وبين الوحدة time. مشروع حل معادلة درجة ثانية ورسم خطها البياني في مشروع بايثون التالي سنقوم بإنشاء تطبيق واجهة مستخدم رسومية لحل معادلة رياضية من الدرجة الثانية أو ما يعرف بالمعادلة التربيعية بطريقة المميز delta ونرسم خطها البياني الذي يكون عادة على شكل قطع مكافئ، وسنستخدم كل من المكتبة Tkinter لبناء واجهة المستخدم الرسومية والمكتبة matplotlib لرسم الخط البياني. الدخل: معاملات المعادلة a و b و c الخرج: عرض حلول المعادلة x1 و x2 بحسب قيمة المميز ورسم خطها البياني. # quadratic-equation.py import tkinter as tk from tkinter import messagebox from matplotlib.figure import Figure from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg # تعريف دالة لحساب جذور المعادلة def solve_quadratic(a, b, c): try: a, b, c = float(a), float(b), float(c) delta = b**2 - 4 * a * c if delta > 0: x1 = (-b + delta**0.5) / (2 * a) x2 = (-b - delta**0.5) / (2 * a) x1_rounded = round(x1, 2) x2_rounded = round(x2, 2) return f"x1= {x1_rounded}, x2={x2_rounded}" elif delta == 0: x = -b / (2 * a) x_rounded = round(x, 2) return f"x= {x_rounded}" else: return "لا يوجد حلول حقيقة للمعادلة" except ValueError: return "أدخل قيم صحيحة للمعاملات" # تعريف دالة لرسم المعادلة def plot_quadratic(a, b, c): try: a, b, c = float(a), float(b), float(c) x = range(-10, 11) y = [a * x_val**2 + b * x_val + c for x_val in x] fig = Figure(figsize=(6, 4), dpi=100) ax = fig.add_subplot(111) ax.plot(x, y) canvas = FigureCanvasTkAgg(fig, master=window) canvas_widget = canvas.get_tk_widget() canvas_widget.grid(row=4, column=0, columnspan=3) except ValueError: messagebox.showerror("خطأ", "قيم خاطئة للمعاملات") def calculate(): a_val = a_entry.get() b_val = b_entry.get() c_val = c_entry.get() result = solve_quadratic(a_val, b_val, c_val) result_label.config(text=result) plot_quadratic(a_val, b_val, c_val) # إنشاء الواجهة الرسومية window = tk.Tk() window.title("حل معادلة درجة ثانية") window.geometry("800x600+100+50") a_label = tk.Label(window, text="a:", font=("tahoma", 12)) a_label.grid(row=0, column=0, padx=10, pady=10) a_entry = tk.Entry(window, font=("tahoma", 12)) a_entry.grid(row=0, column=1, padx=10, pady=10) b_label = tk.Label(window, text="b:", font=("tahoma", 12)) b_label.grid(row=1, column=0, padx=10, pady=10) b_entry = tk.Entry(window, font=("tahoma", 12)) b_entry.grid(row=1, column=1, padx=10, pady=10) c_label = tk.Label(window, text="c:", font=("tahoma", 12)) c_label.grid(row=2, column=0, padx=10, pady=10) c_entry = tk.Entry(window, font=("tahoma", 12)) c_entry.grid(row=2, column=1, padx=10, pady=10) calculate_button = tk.Button( window, text="Calculate", command=calculate, font=("tahoma", 12) ) calculate_button.grid(row=3, column=0, columnspan=2, padx=10, pady=10) result_label = tk.Label(window, text="", font=("tahoma", 14)) result_label.grid(row=3, column=2, padx=10, pady=10) plot_label = tk.Label(window, text="الرسم البياني", font=("tahoma", 14)) plot_label.grid(row=4, column=0, columnspan=3, padx=10, pady=10) window.mainloop() توضح الصورة التالية نتيجة تنفيذ المشروع لحل معادلة درجة ثانية ورسم خطها البياني توصيات حول المشروع: تأكد من تثبيت المكتبة matplotlib على نظامك قبل تنفيذ المشروع باستخدام التعليمة pip install matplotlib وجرب تطوير واجهة المشروع وتخصيص شكل الرسم البياني ليظهر أكثر احترافية ويظهر حلول المعادلة بيانيًا. مشروع استخراج بيانات من موقع ويب تعد مشاريع بايثون التي تقوم باستخراج البيانات من الويب Web Scraping من تطبيقات بايثون المفيدة والمطلوبة في سوق العمل فمن خلالها يمكنك جمع المعلومات المختلفة مثل أحدث الأخبار والمقالات، أو عناوين الكتب، أو المنشورات والتعليقات من مواقع التواصل، أو أسعار المنتجات من مواقع ويب بشكل تلقائي لسهولة تصفحها أو تنظيمها وتخزينها في ملفات قواعد بيانات ثم تحليلها ومقارنتها بدلاً من جلب هذه البيانات يدويًا من عدة أماكن. يمكنك بناء مشاريع بايثون Python لاستخراج بيانات الويب بسهولة بفضل ما توفره لغة بايثون من مكتبات مساعدة في هذا المجال مثل Beautiful Soup و Scrapy و Selenium لكن انتبه فبعض المواقع قد لا تسمح لك باستخراج البيانات منها وقد تحظر أي طلبات تقوم بها. لاستخراج البيانات من موقع ما عليك بداية تحديد البيانات التي تريد استخراجها كالنصوص أو الصور أو الروابط وفحص بنية HTML الخاصة بالموقع باستخدام أدوات مطور المتصفح لتحديد العناصر التي تحتاج إلى استهدافها بدقة بعدها سيكون عليك كتابة التعليمات البرمجية اللازمة لإجراء طلبات استرداد صفحات الويب المطلوبة من الموقع وتحليل محتوى HTML واستخراج البيانات التي تحتاجها والتعامل مع الحالات الخاصة التي قد لا تتمكن فيها من الحصول على البيانات المطلوبة، قد تحتاج بعد ذلك إلى تنسيق البيانات أو تخزينها أو تحليلها حسب الطلب. سنقوم بإنشاء مشروع بلغة بايثون يستخرج أحدث المقالات المنشورة في موقع ووردبريس بالعربية باستخدام المكتبة tkinter و BeautifulSoup وهي مكتبة بايثون مشهورة تستخدم لتحليل مستندات HTML وXML واستخراج بياناتها والمكتبة requests لتقديم طلب HTTP GET إلى عنوان URL لصفحة الويب التي تريد استخراج بياناتها. كود بايثون لاستخراج بيانات من موقع ويب: # مشروع استخلاص البيانات من موقع ووردبريس بالعربية import tkinter as tk from tkinter import ttk from tkinter import scrolledtext # لإضافة scrollbar للنتائج import requests from bs4 import BeautifulSoup # استخلاص عناوين المقالات المنشورة حديثًا def fetch_and_extract_labels(): url = url_entry.get() result_text.config(state=tk.NORMAL) result_text.delete(1.0, tk.END) result_text.config(state=tk.DISABLED) try: response = requests.get(url) response.raise_for_status() soup = BeautifulSoup(response.text, 'html.parser') labels = [link.get('aria-label') for link in soup.find_all('a', class_='p-flink')] result_text.config(state=tk.NORMAL) result_text.delete(1.0, tk.END) result_text.tag_configure("rtl", justify="right") for label in labels: result_text.insert(tk.END, f"{label}\n", "rtl") except requests.exceptions.RequestException as e: result_text.config(state=tk.NORMAL) result_text.delete(1.0, tk.END) result_text.insert(tk.END, "خطأ قي جلب البيانات-تحقق من العنوان") except Exception as e: result_text.config(state=tk.NORMAL) result_text.delete(1.0, tk.END) result_text.insert(tk.END, f"خطأ: {str(e)}") finally: result_text.config(state=tk.DISABLED) app = tk.Tk() app.title("استخلاص البيانات") button_style = ttk.Style() button_style.configure("TButton", font="tahoma", padding=5, background="#3498db") url_label = ttk.Label(app, text="عنوان الموقع", font="tahoma") url_label.pack(pady=5) default_url = "https://www.wpar.net/" url_entry = ttk.Entry(app, width=50 , font="tahoma") url_entry.insert(0, default_url) url_entry.pack(pady=5) scrape_button = ttk.Button(app, text="استخراج", style="TButton", command=fetch_and_extract_labels) scrape_button.pack(pady=10) result_text = scrolledtext.ScrolledText(app, wrap=tk.WORD, height=15, width=50,font="tahoma") result_text.pack(pady=5) result_text.config(state=tk.DISABLED) app.mainloop() عند تنفيذ المشروع والنقر على زر استخراج ستحصل على البيانات المطلوبة بالشكل التالي: توصيات حول المشروع: عليك تثبيت المكتبات المطلوبة من خلال التعليمة pip install module_name لتنفيذ الكود بشكل صحيح، كما يتوجب عليك التحقق باستمرار من الكود البرمجي الذي يستخلص البيانات من موقع معين لأن بعض المواقع قد تغير تصميمها، وبالتالي يتوجب عليك التأكد من أن الكود البرمجي الذي كتبته يجلب لك البيانات الصحيحة، وبعد تنفيذ هذا المشروع جرب جلب بيانات أخرى مثل صور المقالات أو روابطها أو اسم الكاتب واعرضها بالشكل المناسب. أفكار مشاريع بايثون أخرى للتدريب استعرضنا لك في الفقرات السابقة عدة مشاريع بايثون جاهزة للمبتدئين والتي يمكنك تجربتها كمبتدئ وهناك بالطبع الكثير من أفكار شاريع بايثون للتدريب يمكنك تطبيقها فمجالات وتطبيقات لغة بايثون كثيرة ومتنوعة وإذا كنت مهتمًا بأحد هذه المجالات فمن الأفضل أن تركز على تطوير مشاريع فيه. إليك قائمة ببعض الأفكار الأخرى لمشاريع عملية متنوعة تناسب المبتدئين يمكنك تنفيذها لغة البرمجة بايثون. مشروع يطلب من المستخدم إدخال تاريخ ميلاده ويحسب عمره بالأيام أو الأشهر أو السنوات. مشروع التحويل بين العملات. مشروع لعبة بسيطة مثل لعبة Tic-Tac-Toe أو لعبة مسابقات تطرح الأسئلة وتتحقق من الإجابات. مشروع توليد رمز QR للروابط. مشروع لتلخيص النصوص. مشروع فهرس أو قاموس بلغة بايثون. استخراج النص من مقطع فيديو. مشروع أتمتة مهام مثل مهمة التقاط الشاشة أو إرسال بريد إلكتروني. مشروع قواعد بيانات لحفظ أسماء جهات اتصالك وأرقامهم وعناوينهم. مشروع قائمة المهام. مشروع التحقق من صحة البريد الإلكتروني. مشروع استخراج أسماء وأسعار المنتجات من مواقع للتجارة الإلكترونية. مشاريع ذكاء اصطناعي بلغة البايثون مثل مشروع تصنيف الصور أو مشروع تصنيف رسائل البريد الإلكتروني. مشاريع بايثون للويب مثل تطبيق إدارة المهام To-do List أو صفحة ويب بسيطة تعرض أعمالك. قبل تنفيذ أي مشروع بايثون من هذه المشاريع حاول فهم المشكلة المطلوبة بشكل صحيح وتحديد المدخلات والمخرجات المطلوبة، وفكر في خوارزمية الحل الصحيحة التي تمكنك من معالجة المدخلات للحصول على النتائج الصحيحة، ثم ابحث عن وجود مكتبات مساعدة لتنفيذ المطلوب فلغة بايثون غنية بالمكتبات الجاهزة التي توفر عليك الوقت وتختصر كتابة الكثير من الأكواد. وفي حال رغبت بتنفيذ مشاريع بلغة بايثون أكثر تقدمًا واحترافية تساعدك على فهم لغة باثيون Python بعمق والتعرف على متطلبات سوق العمل أنصحك بمطالعة دورة تطوير التطبيقات باستخدام لغة Python التي توفرها أكاديمية حسوب فهي دورة متكاملة تمنحك الفرصة لبدء تعلم بايثون من الصفر وتطبيق العديد من مشاريع بايثون العملية المتكاملة التي تعزز معرض أعمالك وتساعدك في العثور على فرصة عمل مناسبة، كما توفر لك متابعة دورية مع مدربين أكفاء يجيبونك في حال وجود أي تساؤل أو استفسار بخصوص ما تطبقه وتتعلمه. الخلاصة اقترحنا في هذه المقالة لك العديد من الأفكار المتنوعة حول مشاريع بايثون يمكنك تنفيذها وتطويرها، ستساعدك هذه المشاريع على التمكن من أساسيات لغة بايثون وفهمها بشكل أفضل، وممارسة كتابة الأكواد وتصحيح الأخطاء. وتذكر دومًا أن الممارسة والتطبيق العملي هي المفتاح لتحسن مستواك في البرمجة وبمجرد الانتهاء من هذه المشاريع البسيطة يمكنك تجربة أفكار مشاريع أكثر تقدمًا. هل لديك أفكار مشاريع بايثون أخرى تود أن تقترحها أو تناقشها معنا وتجد أنها تناسب المبرمجين المبتدئين، نرحب بأي فكرة مشروع بايثون تكتبها في قسم التعليقات أسفل المقال. اقرأ أيضًا تعلم كتابة أكواد بايثون من خلال الأمثلة العملية مقدمة إلى دوال التعامل مع السلاسل النصية في بايثون 3 المرجع الشامل إلى تعلم لغة بايثون كتابة دوال فعالة في بايثون بناء لعبة نرد بسيطة بلغة بايثون
    1 نقطة
×
×
  • أضف...